Esempio n. 1
0
 private function parseMethod(\SimpleXMLElement $doc)
 {
     list($className, $methodName) = explode("::", (string) $doc->refnamediv->refname);
     $class = $this->getOrCreateClass($className);
     $class->setMethod($method = new PhpMethod($methodName));
     $method->setAttribute('purpose', (string) $doc->refnamediv->refpurpose);
     foreach ($doc->refsect1 as $refsect) {
         if (isset($refsect->methodsynopsis)) {
             foreach ($doc->refsect1->methodsynopsis as $methodElem) {
                 $method->setAttribute('return_type', (string) $methodElem->type);
                 foreach ($methodElem->methodparam as $paramElem) {
                     $method->addParameter($this->createParamForElem($paramElem));
                     if ('...' === (string) $paramElem->parameter) {
                         $method->setAttribute('variable_parameters', true);
                     }
                 }
             }
             continue;
         }
         $this->parseRefsect($refsect, $method);
     }
     $this->typeRefiner->refineMethodTypes($class, $method);
 }