danieltoader/proxy-manager

此包已被弃用且不再维护。作者建议使用 friendsofphp/proxy-manager-lts 包。

一个提供生成、实例化和通常操作对象代理的实用工具库

2.15.1 2023-01-11 15:30 UTC

This package is auto-updated.

Last update: 2023-01-11 15:41:32 UTC


README

此项目已被存档,不再处于活跃维护状态。您可以使用:https://github.com/FriendsOfPHP/proxy-manager-lts

Proxy Manager

给俄罗斯人的信息

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

目的

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

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 合作,为构建应用程序时使用的开源依赖项提供商业支持和维护。节省时间,降低风险,并提高代码质量,同时支付您实际使用的依赖项的维护者。了解更多信息:点击这里

您还可以通过 ocramius@gmail.com 联系维护者,以解决您私有项目中与此包相关的问题。

安装

建议的安装方法是使用 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();

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