Hugo Sales e8e8000b16 Update composer dependencies %!s(int64=4) %!d(string=hai) anos
..
docs e8e8000b16 Update composer dependencies %!s(int64=4) %!d(string=hai) anos
examples e8e8000b16 Update composer dependencies %!s(int64=4) %!d(string=hai) anos
src e8e8000b16 Update composer dependencies %!s(int64=4) %!d(string=hai) anos
.phpstorm.meta.php e8e8000b16 Update composer dependencies %!s(int64=4) %!d(string=hai) anos
CHANGELOG.md e8e8000b16 Update composer dependencies %!s(int64=4) %!d(string=hai) anos
LICENSE e8e8000b16 Update composer dependencies %!s(int64=4) %!d(string=hai) anos
README.md e8e8000b16 Update composer dependencies %!s(int64=4) %!d(string=hai) anos
SECURITY.md e8e8000b16 Update composer dependencies %!s(int64=4) %!d(string=hai) anos
STABILITY.md e8e8000b16 Update composer dependencies %!s(int64=4) %!d(string=hai) anos
UPGRADE.md e8e8000b16 Update composer dependencies %!s(int64=4) %!d(string=hai) anos
composer.json e8e8000b16 Update composer dependencies %!s(int64=4) %!d(string=hai) anos
composer.lock e8e8000b16 Update composer dependencies %!s(int64=4) %!d(string=hai) anos
proxy-manager.svg e8e8000b16 Update composer dependencies %!s(int64=4) %!d(string=hai) anos

README.md

Proxy Manager

This library aims to provide abstraction for generating various kinds of proxy classes.

ProxyManager

Mutation testing badge Type Coverage

Total Downloads Latest Stable Version Latest Unstable Version

Documentation

You can learn about the proxy pattern and how to use the ProxyManager in the docs.

ocramius/proxy-manager for enterprise

Available as part of the Tidelift Subscription.

The maintainer of ocramius/proxy-manager and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source dependencies you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact dependencies you use. Learn more..

You can also contact the maintainer at ocramius@gmail.com for looking into issues related to this package in your private projects.

Installation

The suggested installation method is via composer:

php composer.phar require ocramius/proxy-manager

Proxy example

Here's how you build a lazy loadable object with ProxyManager using a Virtual Proxy

$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
    }
);

$proxy->doFoo();

See the documentation for more supported proxy types and examples.