* @license MIT */ class RemoteObjectMethod extends MethodGenerator { /** * @param \Zend\Code\Reflection\MethodReflection $originalMethod * @param \Zend\Code\Generator\PropertyGenerator $adapterProperty * @param \ReflectionClass $originalClass * * @return RemoteObjectMethod|static */ public static function generateMethod( MethodReflection $originalMethod, PropertyGenerator $adapterProperty, ReflectionClass $originalClass ) { /* @var $method self */ $method = static::fromReflection($originalMethod); $parameters = $originalMethod->getParameters(); $list = array(); foreach ($parameters as $parameter) { $list[] = '$' . $parameter->getName(); } $method->setBody( '$return = $this->' . $adapterProperty->getName() . '->call(' . var_export($originalClass->getName(), true) . ', ' . var_export($originalMethod->getName(), true) . ', array('. implode(', ', $list) .'));' . "\n\n" . 'return $return;' ); return $method; } }