Beispiel #1
0
 /**
  * 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());
 }