simplecomplex / explorable
使遍历受保护成员变得简单
1.0.0
2021-04-19 06:16 UTC
Requires
- php: ^7.4 || ^8.0
- ext-json: *
Requires (Dev)
- phpunit/phpunit: ^8 || ^9
Suggests
- simplecomplex/inspect: Better variable dumps and traces.
This package is auto-updated.
Last update: 2024-09-19 18:12:18 UTC
README
composer 命名空间: simplecomplex/explorable
使遍历受保护成员变得简单
一个接口、基类和特性,使得暴露类的受保护成员变得容易。
扩展 Explorable
便利了
isset()
count()
foreach (...
var_dump()
toObject()
,toArray()
json_encode()
用法
声明属性的类
属性名硬编码在常量 EXPLORABLE_VISIBLE
中。
<?php use SimpleComplex\Explorable\Explorable; use SimpleComplex\Explorable\ExplorableTrait; /** * @property-read string $foo * @property-read string $bar */ class ExplorablesDeclared extends Explorable { use ExplorableTrait; public const EXPLORABLE_VISIBLE = [ 'foo' => true, 'bar' => true, ]; protected string $foo; protected string $bar; }
依赖于属性表发现的类
属性将在需要时通过 explorablePrepare()
发现。
所有实例变量必须是可空的,并声明为 null (protected ?string $foo = null;
).
否则,可能会出现 "::$foo 必须在初始化之前访问" 错误,或者实例变量根本不会被发现(因为没有设置值(null))。
<?php use SimpleComplex\Explorable\Explorable; use SimpleComplex\Explorable\ExplorableTrait; /** * @property-read string $foo * @property-read string $bar */ class ExplorablesDiscoverable extends Explorable { use ExplorableTrait; protected ?string $foo = null; protected ?string $bar = null; }
MIT 许可
要求
- PHP ^7.4 || ^8.0
开发(require-dev)
- phpunit ^8 || ^9