ocramius/proxy-manager

一个提供生成、实例化以及一般操作对象代理的实用工具库

资助包维护!
Ocramius
Tidelift

安装次数: 79,035,013

依赖者: 268

建议者: 38

安全性: 0

星标: 4,955

关注者: 50

分支: 188

开放性问题: 50

2.14.1 2022-03-05 18:43 UTC

README

致俄罗斯人的一封信

如果您目前居住在俄罗斯,请阅读 此信息

目的

该库旨在为生成各种类型的代理类提供抽象。

ProxyManager

Mutation testing badge Type Coverage

Total Downloads Latest Stable Version Latest Unstable Version

文档

您可以在文档中了解代理模式和如何使用ProxyManager。

ocramius/proxy-manager for enterprise

作为Tidelift订阅的一部分提供。

ocramius/proxy-manager的维护者以及数千个其他包的维护者正在与Tidelift合作,为构建应用程序时使用的开源依赖项提供商业支持和维护。节省时间,降低风险,并提高代码健康,同时为确切使用的依赖项支付维护者。 了解更多。

您还可以通过 [email protected] 联系维护者,以解决与您私有项目相关的此包的问题。

安装

建议的安装方法是通过 composer

php composer.phar require ocramius/proxy-manager

代理示例

这是使用 虚拟代理 通过ProxyManager构建可延迟加载对象的示例

$factory = new \ProxyManager\Factory\LazyLoadingValueHolderFactory();

$proxy = $factory->createProxy(
    \MyApp\HeavyComplexObject::class,
    function (& $wrappedObject, $proxy, $method, $parameters, & $initializer) {
        $wrappedObject = new \MyApp\HeavyComplexObject(); // instantiation logic here
        $initializer   = null; // turning off further lazy initialization

        return true; // report success
    }
);

$proxy->doFoo();

有关更多支持的代理类型和示例,请参阅文档