<?php declare(strict_types=1); namespace ProxyManager\Example\SmartReference; use ProxyManager\Factory\AccessInterceptorValueHolderFactory; require_once __DIR__ . '/../vendor/autoload.php'; class Foo { public function doFoo() : void { echo "Foo!\n"; } } (static function () : void { $factory = new AccessInterceptorValueHolderFactory(); $proxy = $factory->createProxy( new Foo(), [ 'doFoo' => function () : void { echo "pre-foo!\n"; }, ], [ 'doFoo' => function () : void { echo "post-foo!\n"; }, ] ); $proxy->doFoo(); })();