yep / 反射
PHP类反射增强
v2.1.0
2017-10-27 22:11 UTC
Requires
- php: >=7
Requires (Dev)
- phpunit/phpunit: 4.*
README
PHP类反射增强(适用于PHP7+)
Packagist
Reflection 可在 Packagist.org 上找到,只需将依赖项添加到您的 composer.json 文件中。
{ "require" : { "yep/reflection": "^2.0" } }
或者运行 Composer 命令
php composer.phar require yep/reflection
耶普/反射是做什么的?
测试主题和示例代码
<?php class SomeClass { private $someProperty; protected function someMethod($someArgument) { return $someArgument; } public function getSomeProperty() { return $this->someProperty; } public function setSomeProperty($someProperty) { $this->someProperty = $someProperty; } } class SomeClass2 extends SomeClass { } $someClass = new SomeClass(); $reflection = \Yep\Reflection\ReflectionClass::from($class = $someClass);
您可以简单地调用受保护的或私有方法
<?php $someClass = new SomeClass(); echo $reflection->invokeMethod($method = 'someMethod', $arguments = ['foo']); // 'foo'
您可以简单地设置受保护的或私有属性的值
<?php $someClass = new SomeClass(); $reflection->setPropertyValue($property = 'someProperty', $value = 'foo'); echo $someClass->getSomeProperty(); // 'foo'
您可以简单地从受保护的或私有属性中获取值
<?php $someClass = new SomeClass(); $someClass->setSomeProperty('foo'); echo $reflection->getPropertyValue($property = 'someProperty'); // 'foo';
想要访问父类或父类的私有属性吗?
<?php $someClass = new SomeClass2(); $someClass->setSomeProperty('foo'); echo $reflection->getParent()->getPropertyValue($property = 'someProperty'); // 'foo';