PluginProbe ʕ •ᴥ•ʔ
WP STAGING – WordPress Backup, Restore, Migration & Clone / 3.3.1
WP STAGING – WordPress Backup, Restore, Migration & Clone v3.3.1
4.9.1 4.9.0 4.8.1 trunk 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.10.0 3.2.0 3.3.1 3.3.2 3.3.3 3.4.1 3.4.3 3.5.0 3.6.0 3.7.1 3.8.0 3.8.1 3.8.2 3.8.3 3.8.4 3.8.5 3.8.6 3.8.7 3.9.0 3.9.1 3.9.2 3.9.3 3.9.4 4.0.0 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4 4.2.0 4.2.1 4.3.0 4.3.1 4.3.2 4.4.0 4.5.0 4.6.0 4.7.0 4.7.1 4.7.2 4.7.3 4.8.0
wp-staging / Framework / Traits / ArrayableTrait.php
wp-staging / Framework / Traits Last commit date
ArrayableTrait.php 5 years ago BenchmarkTrait.php 2 years ago BooleanTransientTrait.php 5 years ago DatabaseSearchReplaceTrait.php 2 years ago DbRowsGeneratorTrait.php 3 years ago DeveloperTimerTrait.php 4 years ago FileScanToCacheTrait.php 2 years ago HydrateTrait.php 2 years ago MaintenanceTrait.php 5 years ago MemoryExhaustTrait.php 2 years ago MySQLRowsGeneratorTrait.php 2 years ago NoticesTrait.php 2 years ago PropertyConstructor.php 5 years ago ResourceTrait.php 2 years ago
ArrayableTrait.php
45 lines
1 <?php
2
3 // TODO PHP7.x; declare(strict_types=1);
4
5 namespace WPStaging\Framework\Traits;
6
7 use DateTime;
8 use ReflectionClass;
9 use ReflectionProperty;
10
11 trait ArrayableTrait
12 {
13 /**
14 * @return array
15 * @noinspection PhpDocMissingThrowsInspection
16 */
17 public function toArray()
18 {
19 /** @noinspection PhpUnhandledExceptionInspection */
20 $reflection = new ReflectionClass($this);
21 $props = $reflection->getProperties(
22 ReflectionProperty::IS_PUBLIC | ReflectionProperty::IS_PROTECTED | ReflectionProperty::IS_PRIVATE
23 );
24
25 $data = [];
26 /** @var ReflectionProperty $prop */
27 foreach ($props as $prop) {
28 $prop->setAccessible(true);
29 $value = $prop->getValue($this);
30
31 if ($value instanceof DateTime) {
32 $value = $value->format('U');
33 }
34
35 if (is_object($value) && method_exists($value, 'toArray')) {
36 $value = $value->toArray();
37 }
38
39 $data[$prop->getName()] = $value;
40 }
41
42 return $data;
43 }
44 }
45