Exemple #1
0
 /**
  * fromReflection()
  *
  * @param Zend_Reflection_Docblock_Tag $reflectionTagReturn
  * @return Zend_CodeGenerator_Php_Docblock_Tag_License
  */
 public static function fromReflection(Zend_Reflection_Docblock_Tag $reflectionTagLicense)
 {
     $returnTag = new self();
     $returnTag->setName('license');
     $returnTag->setUrl($reflectionTagLicense->getUrl());
     $returnTag->setDescription($reflectionTagLicense->getDescription());
     return $returnTag;
 }
Exemple #2
0
 /**
  * fromReflection()
  *
  * @param Zend_Reflection_Docblock_Tag $reflectionTagReturn
  * @return Zend_CodeGenerator_Php_Docblock_Tag_Return
  */
 public static function fromReflection(Zend_Reflection_Docblock_Tag $reflectionTagReturn)
 {
     $returnTag = new self();
     $returnTag->setName('return');
     $returnTag->setDatatype($reflectionTagReturn->getType());
     // @todo rename
     $returnTag->setDescription($reflectionTagReturn->getDescription());
     return $returnTag;
 }
 /**
  * fromReflection()
  *
  * @param Zend_Reflection_Docblock_Tag $reflectionTagParam
  * @return Zend_CodeGenerator_Php_Docblock_Tag
  */
 public static function fromReflection(Zend_Reflection_Docblock_Tag $reflectionTagParam)
 {
     $paramTag = new self();
     $paramTag->setName('param');
     $paramTag->setDatatype($reflectionTagParam->getType());
     // @todo rename
     $paramTag->setParamName($reflectionTagParam->getVariableName());
     $paramTag->setDescription($reflectionTagParam->getDescription());
     return $paramTag;
 }
Exemple #4
0
 /**
  * fromReflection()
  *
  * @param Zend_Reflection_Docblock_Tag $reflectionTag
  * @return Zend_CodeGenerator_Php_Docblock_Tag
  */
 public static function fromReflection(Zend_Reflection_Docblock_Tag $reflectionTag)
 {
     $tagName = $reflectionTag->getName();
     $codeGenDocblockTag = self::factory($tagName);
     // transport any properties via accessors and mutators from reflection to codegen object
     $reflectionClass = new ReflectionClass($reflectionTag);
     foreach ($reflectionClass->getMethods(ReflectionMethod::IS_PUBLIC) as $method) {
         if (substr($method->getName(), 0, 3) == 'get') {
             $propertyName = substr($method->getName(), 3);
             if (method_exists($codeGenDocblockTag, 'set' . $propertyName)) {
                 $codeGenDocblockTag->{'set' . $propertyName}($reflectionTag->{'get' . $propertyName}());
             }
         }
     }
     return $codeGenDocblockTag;
 }
 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);
 }
Exemple #6
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;
 }