/** * getMethods() test * * Call as method call * * Returns: array */ public function testGetMethods() { $r = new Reflection\ReflectionClass(new \ReflectionClass('\\Zend\\Server\\Reflection')); $methods = $r->getMethods(); $this->assertTrue(is_array($methods)); foreach ($methods as $m) { $this->assertTrue($m instanceof Reflection\ReflectionMethod); } }
/** * Build XML service description from reflection class * * @param \Zend\Server\Reflection\ReflectionClass $refclass * @param DOMElement $target target XML element * @return void */ protected function _addService(ServerReflectionClass $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); if ($param->isDefaultValueAvailable()) { $arg->setAttribute('defaultvalue', $param->getDefaultValue()); } $op->appendChild($arg); } $target->appendChild($op); } } }