spatie / invade
一个用于操作私有属性和方法的 PHP 函数
2.1.0
2024-05-17 09:06 UTC
Requires
- php: ^8.0
Requires (Dev)
- pestphp/pest: ^1.20
- phpstan/phpstan: ^1.4
- spatie/ray: ^1.28
README
一个用于访问私有属性和方法的 PHP 函数
此包提供了一个 invade
函数,允许您读取/写入对象的私有属性。它还允许您调用私有方法。
支持我们
我们在创建最佳开源包上投入了大量资源。您可以通过购买我们的付费产品之一来支持我们。
我们非常感谢您从家乡寄来明信片,说明您正在使用哪些包。您可以在我们的联系页面上找到我们的地址。我们将在我们的虚拟明信片墙上发布所有收到的明信片。
安装
您可以通过 composer 安装此包
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'
此外,您还可以获取和设置私有静态类属性并调用私有静态方法。想象一下拥有这个类
class MyClass { private static string $privateStaticProperty = 'privateValue'; private static function privateStaticMethod(string $string, int $int): string { return 'private return value ' . $string . ' ' . $int; } }
以下是获取和设置私有类属性的示例
invade(MyClass::class)->get('privateStaticProperty'); // returns 'private value' invade(MyClass::class)->set('privateStaticProperty', 'changedValue'); invade(MyClass::class)->get('privateStaticProperty'); // returns 'changedValue'
以下是调用私有静态方法的示例
invade(MyClass::class) ->method('privateStaticMethod') ->call('foo', 123); // returns 'private return value foo 123'
测试
composer test
变更日志
有关最近更改的更多信息,请参阅变更日志。
贡献
有关详细信息,请参阅贡献指南。
安全漏洞
有关如何报告安全漏洞,请参阅我们的安全策略。
鸣谢
特别感谢Caneco为标志✨
原始想法来自Caleb "string king" Porzio。我们在Livewire 的这个提交中稍作修改了他创建的代码。
许可证
MIT 许可证(MIT)。有关更多信息,请参阅许可证文件。