访问私有属性和方法的 PHP 函数
这个包提供了一个invade
函数,允许你读/写一个对象的私有属性。它还将允许您调用私有方法。
安装
您可以通过作曲家安装包:
composer require spatie/invade
用法
想象一下,你定义了这个类,它有一个私有属性和方法。
class MyClass
{
private string $privateProperty = 'private value';
private function privateMethod(): string
{
return 'private return value';
}
}
$myClass = new Myclass();
这就是您如何使用该函数获取私有属性的值invade
。
invade($myClass)->privateProperty; // returns 'private value'
该invade
函数还允许您更改私有值。
invade($myClass)->privateProperty = 'changed value';
invade($myClass)->privateProperty; // returns 'changed value
使用invade
你还可以调用私有函数。
invade($myClass)->privateMethod(); // returns 'private return value'
让 PHPStan 理解 Invade
PHPStan 将报告每个被入侵的私有方法和属性的错误,因为它不知道您现在可以访问它们。要消除这些错误,请安装PHPStan 扩展安装程序或手动将 invasion PHPStan 扩展添加到您的 PHPStan 配置中:
includes:
- ./vendor/spatie/invade/phpstan-extension.neon
测试
composer test
vendor/bin/phpstan analyse -c types/phpstan.neon.dist
相关博文
spatie / invade 使用私有属性和方法的 PHP 函数