Exemplo n.º 1
0
 protected function _parse()
 {
     $docComment = $this->_docComment;
     // First remove doc block line starters
     $docComment = preg_replace('#[ \\t]*(?:\\/\\*\\*|\\*\\/|\\*)?[ ]{0,1}(.*)?#', '$1', $docComment);
     $docComment = ltrim($docComment, "\r\n");
     // Next parse out the tags and descriptions
     $parsedDocComment = $docComment;
     $lineNumber = $firstBlandLineEncountered = 0;
     while (($newlinePos = strpos($parsedDocComment, "\n")) !== false) {
         $lineNumber++;
         $line = substr($parsedDocComment, 0, $newlinePos);
         if (strpos($line, '@') === 0 && preg_match('#^(@\\w+.*?)(\\n)(?:@|\\r?\\n|$)#s', $parsedDocComment, $matches)) {
             $this->_tags[] = Zend_Reflection_Docblock_Tag::factory($matches[1]);
             $parsedDocComment = str_replace($matches[1] . $matches[2], '', $parsedDocComment);
         } else {
             if ($lineNumber < 3 && !$firstBlandLineEncountered) {
                 $this->_shortDescription .= $line . "\n";
             } else {
                 $this->_longDescription .= $line . "\n";
             }
             if ($line == '') {
                 $firstBlandLineEncountered = true;
             }
             $parsedDocComment = substr($parsedDocComment, $newlinePos + 1);
         }
     }
     $this->_shortDescription = rtrim($this->_shortDescription);
     $this->_longDescription = rtrim($this->_longDescription);
 }
Exemplo n.º 2
0
 /**
  * Get return type tag
  *
  * @return Zend_Reflection_Docblock_Tag_Return
  */
 public function getReturn()
 {
     $docblock = $this->getDocblock();
     if (!$docblock->hasTag('return')) {
         require_once PHP_LIBRARY_PATH . 'Zend/Reflection/Exception.php';
         throw new Zend_Reflection_Exception('Function does not specify an @return annotation tag; cannot determine return type');
     }
     $tag = $docblock->getTag('return');
     $return = Zend_Reflection_Docblock_Tag::factory('@return ' . $tag->getDescription());
     return $return;
 }