1234567891011121314151617181920212223242526272829303132 |
- <?php
- declare(strict_types=1);
- namespace Yansongda\Supports\Traits;
- use ReflectionClass;
- use Yansongda\Supports\Str;
- trait Arrayable
- {
- /**
- * toArray.
- *
- * @author yansongda <me@yansongda.cn>
- *
- * @throws \ReflectionException
- */
- public function toArray(): array
- {
- $result = [];
- foreach ((new ReflectionClass($this))->getProperties() as $item) {
- $k = $item->getName();
- $method = 'get'.Str::studly($k);
- $result[Str::snake($k)] = method_exists($this, $method) ? $this->{$method}() : $this->{$k};
- }
- return $result;
- }
- }
|