tmont / phroxy
Proxy generator that supports interception of method calls
1.1.0
2014-01-22 22:09 UTC
Requires (Dev)
- phpunit/phpunit: 3.7.*
This package is not auto-updated.
Last update: 2024-11-19 07:31:30 UTC
README
Phroxy is a proxy generator. It's probably useful. You can use it to create a mock object, or to create a proxy and intercept methods on that proxy.
Installation
User composer:
{ "require": { "tmont/phroxy": "1.1.x" } }
Usage
I don't feel like writing documentation, so take a look at the unit tests. There are examples of basic proxying as well as advanced method interception.
The basic gist is:
use Tmont\Phroxy\Interceptor; use Tmont\Phroxy\InterceptorCache; use Tmont\Phroxy\InterceptionContext; use ReflectionClass; class ReturnBeforeCallInterceptor implements Interceptor { public function onBeforeMethodCall(InterceptionContext $context) { $context->setReturnValue('oh hai!'); } public function onAfterMethodCall(InterceptionContext $context) {} } class MyClass { public function hello() { return 'hello'; } } $interceptor = new ReturnBeforeCallInterceptor(); InterceptorCache::registerInterceptor($interceptor, function($x) { return true; }); $proxy = $this->builder->build(new ReflectionClass('MyClass')); $proxy->hello(); // "oh hai!"
Development
git clone git@github.com:tmont/phroxy.git
cd phroxy
composer install
vendor/bin/phpunit