/** * fromReflection() * * @param \Zend\Reflection\ReflectionDocblockTag $reflectionTag * @return \Zend\CodeGenerator\Php\PhpDocblockTag */ public static function fromReflection(\Zend\Reflection\ReflectionDocblockTag $reflectionTag) { $tagName = $reflectionTag->getName(); $codeGenDocblockTag = new self(); $codeGenDocblockTag->setName($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; }