Partial proxy class builder
, (*1)
Dynamically scaffold proxy classes that actually extend the class being proxied,
allowing them to be used in type-strict applications., (*2)
No it's not prophecy because this is designed for partial proxies, not testing., (*3)
Installation
composer require tractorcow/classproxy
Examples
// Create a proxy creator
$proxy = ProxyFactory::create(DataBase::class)
->addMethod('connect', function ($args, $next) use ($logger) {
$logger->log("Connecting to server " . $args[0]['server'];
return $next(...$args);
});
// Generate instance of our proxy
$instance = $proxy->instance();
assert($instance instanceof Database); // Yep!
// Connects to underlying database, logging the call
$instance->connect([
'server' => 'localhost',
'user' => 'root'
]);