/** * Factory method for easy instantiation. * * @param string[] $additionalTags * * @return DocBlockFactory */ public static function createInstance(array $additionalTags = []) { $fqsenResolver = new FqsenResolver(); $tagFactory = new StandardTagFactory($fqsenResolver); $descriptionFactory = new DescriptionFactory($tagFactory); $tagFactory->addService($descriptionFactory); $tagFactory->addService(new TypeResolver($fqsenResolver)); foreach ($additionalTags as $tagName => $tagClassName) { $tagFactory->registerTagHandler($tagName, $tagClassName); } return new self($descriptionFactory, $tagFactory); }
/** * @covers ::registerTagHandler * @uses phpDocumentor\Reflection\DocBlock\StandardTagFactory::__construct * @uses phpDocumentor\Reflection\DocBlock\StandardTagFactory::addService * @expectedException \InvalidArgumentException */ public function testHandlerRegistrationFailsIfProvidedHandlerDoesNotImplementTheTagInterface() { $resolver = m::mock(FqsenResolver::class); $tagFactory = new StandardTagFactory($resolver); $tagFactory->registerTagHandler('my-tag', 'stdClass'); }