spatie/invade

一个用于操作私有属性和方法的 PHP 函数

维护者

详细信息

github.com/spatie/invade

主页

源代码

资助包维护!
spatie

安装次数: 7,892,096

依赖者: 101

建议者: 0

安全性: 0

星标: 310

关注者: 4

分支: 17

2.1.0 2024-05-17 09:06 UTC

This package is auto-updated.

Last update: 2024-09-08 05:43:09 UTC


README

Social Card of Invade

一个用于访问私有属性和方法的 PHP 函数

Latest Version on Packagist Tests Total Downloads

此包提供了一个 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)。有关更多信息,请参阅许可证文件