/** * Initializes this object with the given data and sets the name and * description. * * @param string $namespace Namespace * where this tag occurs. * @param string[] $namespace_aliases Aliases * used for all namespaces at the location of this tag. * @param \SimpleXMLElement $xml XML to * enhance. * @param \phpDocumentor\Reflection\DocBlock\Tag $tag Tag * object to use. */ public function __construct($namespace, $namespace_aliases, \SimpleXMLElement $xml, \phpDocumentor\Reflection\DocBlock\Tag $tag) { $this->xml = $xml; $this->tag = $tag; $this->setNamespace($namespace); $this->setNamespaceAliases($namespace_aliases); $this->setName($this->tag->getName()); $this->setDescription($this->tag->getDescription()); if (method_exists($this->tag, 'getTypes')) { $this->setTypes($this->tag->getTypes()); } if (method_exists($this->tag, 'getReference')) { $this->setReference($this->tag->getReference()); } }
/** * Export this tag to the given DocBlock. * * This method also invokes the 'reflection.docblock.tag.export' which can * be used to augment the data. This is useful for plugins so that they * can provide custom tags. * * @param \DOMElement $parent Element to augment. * @param Tag $tag The tag to export. * @param BaseReflector $element Element to log from. * * @return void */ public function buildDocBlockTag(\DOMElement $parent, $tag, $element) { if (!$tag) { // TODO #840: Workaround; for some reason there are NULLs in the tags array. return; } $child = new \DOMElement('tag'); $parent->appendChild($child); $child->setAttribute('name', $tag->getName()); $child->setAttribute('description', htmlspecialchars($tag->getDescription(), ENT_QUOTES, 'UTF-8')); $child->setAttribute('line', $parent->getAttribute('line')); if (method_exists($tag, 'getTypes')) { $typeString = ''; foreach ($tag->getTypes() as $type) { $child->appendChild(new \DOMElement('type', $type)); $typeString .= $type . '|'; } $child->setAttribute('type', rtrim($typeString, '|')); } if (method_exists($tag, 'getVariableName')) { $child->setAttribute('variable', $tag->getVariableName()); } // TODO: Serialize specific tag information }
/** * Test that the \phpDocumentor\Reflection\DocBlock\Tag\VarTag can * understand the @var doc block. * * @param string $type * @param string $content * @param string $exDescription * * @covers \phpDocumentor\Reflection\DocBlock\Tag * @dataProvider provideDataForConstuctor * * @return void */ public function testConstructorParesInputsIntoCorrectFields($type, $content, $exDescription) { $tag = new Tag($type, $content); $this->assertEquals($type, $tag->getName()); $this->assertEquals($content, $tag->getContent()); $this->assertEquals($exDescription, $tag->getDescription()); }
/** * Creates a new Descriptor from the given Reflector. * * @param Tag $data * * @return TagDescriptor */ public function create($data) { $descriptor = new TagDescriptor($data->getName()); $descriptor->setDescription($data->getDescription()); return $descriptor; }