/** * Build XML service description from reflection class * * @param Zend_Server_Reflection_Class $refclass * @param DOMElement $target target XML element * @return void */ protected function _addService(Zend_Server_Reflection_Class $refclass, DOMElement $target) { foreach ($refclass->getMethods() as $method) { if (!$method->isPublic() || $method->isConstructor() || '__' == substr($method->name, 0, 2)) { continue; } foreach ($method->getPrototypes() as $proto) { $op = $this->_xml->createElement('operation'); $op->setAttribute('name', $method->getName()); $rettype = $this->_registerType($proto->getReturnType()); $op->setAttribute('returnType', $rettype); foreach ($proto->getParameters() as $param) { $arg = $this->_xml->createElement('argument'); $arg->setAttribute('name', $param->getName()); $type = $param->getType(); if ($type == 'mixed' && ($pclass = $param->getClass())) { $type = $pclass->getName(); } $ptype = $this->_registerType($type); $arg->setAttribute('type', $ptype); $op->appendChild($arg); } $target->appendChild($op); } } }
/** * Wakeup from serialization * * Reflection needs explicit instantiation to work correctly. Re-instantiate * reflection object on wakeup. * * @return void */ public function __wakeup() { $this->_classReflection = new Zend_Server_Reflection_Class(new ReflectionClass($this->_class), $this->getNamespace(), $this->getInvokeArguments()); $this->_reflection = new ReflectionMethod($this->_classReflection->getName(), $this->getName()); }
/** * namespace test */ public function testGetNamespace() { $r = new Zend_Server_Reflection_Class(new ReflectionClass('Zend_Server_Reflection')); $this->assertEquals('', $r->getNamespace()); $r->setNamespace('namespace'); $this->assertEquals('namespace', $r->getNamespace()); }