/** * Build callback for method signature * * @param Zend_Server_Reflection_Function_Abstract $reflection * @return Zend_Server_Method_Callback */ protected function _buildCallback(Zend_Server_Reflection_Function_Abstract $reflection) { $callback = new Zend_Server_Method_Callback(); if ($reflection instanceof Zend_Server_Reflection_Method) { $callback->setType($reflection->isStatic() ? 'static' : 'instance')->setClass($reflection->getDeclaringClass()->getName())->setMethod($reflection->getName()); } elseif ($reflection instanceof Zend_Server_Reflection_Function) { $callback->setType('function')->setFunction($reflection->getName()); } return $callback; }
/** * Dispatch method * * @param Zend_Server_Reflection_Function_Abstract $invocable * @param array $params * @return mixed */ protected function _dispatch(Zend_Server_Reflection_Function_Abstract $invocable, array $params) { if ($invocable instanceof Zend_Server_Reflection_Function) { $function = $invocable->getName(); return call_user_func_array($function, $params); } $class = $invocable->getDeclaringClass(); $object = $class->newInstance(); return $invocable->invokeArgs($object, $params); }