protected function generateProxyClass($class) { $reflectionClass =
new ReflectionClass($class);
// Make sure a proxy of the class can be created
CanProxyAssertion::
assertClassCanBeProxied($reflectionClass, false
);
// Generate the base class
$proxyClassName =
$this->
getProxyClassName($class);
$classGenerator =
new ClassGenerator($proxyClassName);
$classGenerator->
setExtendedClass($reflectionClass->
getName());
$classGenerator->
setImplementedInterfaces([ Enlight_Hook_Proxy::
class,
]);
// Add the private '__hookProxyExecutionContexts' array property
$classGenerator->
addProperty('__hookProxyExecutionContexts', null, PropertyGenerator::FLAG_PRIVATE
);
// Prepare generators for the hooked methods
$hookMethods =
$this->
getHookedMethods($reflectionClass);
$hookMethodGenerators =
[];
foreach ($hookMethods as $method) {