Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. DocBlockFactory.php

function DocBlockFactory::createInstance

Factory method for easy instantiation.

Parameters

array<string, class-string<Tag>|Factory> $additionalTags:

Overrides DocBlockFactoryInterface::createInstance

1 call to DocBlockFactory::createInstance()
ClassTagRetriever::__construct in vendor/phpspec/prophecy/src/Prophecy/PhpDocumentor/ClassTagRetriever.php

File

vendor/phpdocumentor/reflection-docblock/src/DocBlockFactory.php, line 70

Class

DocBlockFactory

Namespace

phpDocumentor\Reflection

Code

public static function createInstance(array $additionalTags = []) : DocBlockFactoryInterface {
    $fqsenResolver = new FqsenResolver();
    $tagFactory = new StandardTagFactory($fqsenResolver);
    $descriptionFactory = new DescriptionFactory($tagFactory);
    $typeResolver = new TypeResolver($fqsenResolver);
    $phpstanTagFactory = new AbstractPHPStanFactory(new ParamFactory($typeResolver, $descriptionFactory), new VarFactory($typeResolver, $descriptionFactory), new ReturnFactory($typeResolver, $descriptionFactory), new PropertyFactory($typeResolver, $descriptionFactory), new PropertyReadFactory($typeResolver, $descriptionFactory), new PropertyWriteFactory($typeResolver, $descriptionFactory), new MethodFactory($typeResolver, $descriptionFactory), new ImplementsFactory($typeResolver, $descriptionFactory), new ExtendsFactory($typeResolver, $descriptionFactory), new TemplateFactory($typeResolver, $descriptionFactory), new TemplateImplementsFactory($typeResolver, $descriptionFactory), new TemplateExtendsFactory($typeResolver, $descriptionFactory));
    $tagFactory->addService($descriptionFactory);
    $tagFactory->addService($typeResolver);
    $tagFactory->registerTagHandler('param', $phpstanTagFactory);
    $tagFactory->registerTagHandler('var', $phpstanTagFactory);
    $tagFactory->registerTagHandler('return', $phpstanTagFactory);
    $tagFactory->registerTagHandler('property', $phpstanTagFactory);
    $tagFactory->registerTagHandler('property-read', $phpstanTagFactory);
    $tagFactory->registerTagHandler('property-write', $phpstanTagFactory);
    $tagFactory->registerTagHandler('method', $phpstanTagFactory);
    $tagFactory->registerTagHandler('extends', $phpstanTagFactory);
    $tagFactory->registerTagHandler('implements', $phpstanTagFactory);
    $tagFactory->registerTagHandler('template', $phpstanTagFactory);
    $tagFactory->registerTagHandler('template-extends', $phpstanTagFactory);
    $tagFactory->registerTagHandler('template-implements', $phpstanTagFactory);
    $docBlockFactory = new self($descriptionFactory, $tagFactory);
    foreach ($additionalTags as $tagName => $tagHandler) {
        $docBlockFactory->registerTagHandler($tagName, $tagHandler);
    }
    return $docBlockFactory;
}
RSS feed
Powered by Drupal