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

Breadcrumb

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

class DocBlock

Same name in this branch
  1. 11.1.x vendor/phpunit/phpunit/src/Metadata/Parser/Annotation/DocBlock.php \PHPUnit\Metadata\Annotation\Parser\DocBlock

Hierarchy

  • class \phpDocumentor\Reflection\DocBlock

Expanded class hierarchy of DocBlock

2 files declare their use of DocBlock
BaseTag.php in vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/BaseTag.php
Serializer.php in vendor/phpdocumentor/reflection-docblock/src/DocBlock/Serializer.php
7 string references to 'DocBlock'
DebugClassLoader::checkAnnotations in vendor/symfony/error-handler/DebugClassLoader.php
DebugClassLoader::fixReturnStatements in vendor/symfony/error-handler/DebugClassLoader.php
DebugClassLoader::patchMethod in vendor/symfony/error-handler/DebugClassLoader.php
Utility method to add
DebugClassLoader::__construct in vendor/symfony/error-handler/DebugClassLoader.php
FileHeaderSniff::getHeaderLines in vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Sniffs/Files/FileHeaderSniff.php
Gather information about the statements inside a possible file header.

... See full list

File

vendor/phpdocumentor/reflection-docblock/src/DocBlock.php, line 20

Namespace

phpDocumentor\Reflection
View source
final class DocBlock {
    
    /** @var string The opening line for this docblock. */
    private string $summary;
    
    /** @var DocBlock\Description The actual description for this docblock. */
    private DocBlock\Description $description;
    
    /** @var Tag[] An array containing all the tags in this docblock; except inline. */
    private array $tags = [];
    
    /** @var Types\Context|null Information about the context of this DocBlock. */
    private ?Types\Context $context = null;
    
    /** @var Location|null Information about the location of this DocBlock. */
    private ?Location $location = null;
    
    /** @var bool Is this DocBlock (the start of) a template? */
    private bool $isTemplateStart;
    
    /** @var bool Does this DocBlock signify the end of a DocBlock template? */
    private bool $isTemplateEnd;
    
    /**
     * @param DocBlock\Tag[] $tags
     * @param Types\Context  $context  The context in which the DocBlock occurs.
     * @param Location       $location The location within the file that this DocBlock occurs in.
     */
    public function __construct(string $summary = '', ?DocBlock\Description $description = null, array $tags = [], ?Types\Context $context = null, ?Location $location = null, bool $isTemplateStart = false, bool $isTemplateEnd = false) {
        Assert::allIsInstanceOf($tags, Tag::class);
        $this->summary = $summary;
        $this->description = $description ?: new DocBlock\Description('');
        foreach ($tags as $tag) {
            $this->addTag($tag);
        }
        $this->context = $context;
        $this->location = $location;
        $this->isTemplateEnd = $isTemplateEnd;
        $this->isTemplateStart = $isTemplateStart;
    }
    public function getSummary() : string {
        return $this->summary;
    }
    public function getDescription() : DocBlock\Description {
        return $this->description;
    }
    
    /**
     * Returns the current context.
     */
    public function getContext() : ?Types\Context {
        return $this->context;
    }
    
    /**
     * Returns the current location.
     */
    public function getLocation() : ?Location {
        return $this->location;
    }
    
    /**
     * Returns whether this DocBlock is the start of a Template section.
     *
     * A Docblock may serve as template for a series of subsequent DocBlocks. This is indicated by a special marker
     * (`#@+`) that is appended directly after the opening `/**` of a DocBlock.
     *
     * An example of such an opening is:
     *
     * ```
     * /**#@+
     *  * My DocBlock
     *  * /
     * ```
     *
     * The description and tags (not the summary!) are copied onto all subsequent DocBlocks and also applied to all
     * elements that follow until another DocBlock is found that contains the closing marker (`#@-`).
     *
     * @see self::isTemplateEnd() for the check whether a closing marker was provided.
     */
    public function isTemplateStart() : bool {
        return $this->isTemplateStart;
    }
    
    /**
     * Returns whether this DocBlock is the end of a Template section.
     *
     * @see self::isTemplateStart() for a more complete description of the Docblock Template functionality.
     */
    public function isTemplateEnd() : bool {
        return $this->isTemplateEnd;
    }
    
    /**
     * Returns the tags for this DocBlock.
     *
     * @return Tag[]
     */
    public function getTags() : array {
        return $this->tags;
    }
    
    /**
     * Returns an array of tags matching the given name. If no tags are found
     * an empty array is returned.
     *
     * @param string $name String to search by.
     *
     * @return Tag[]
     */
    public function getTagsByName(string $name) : array {
        $result = [];
        foreach ($this->getTags() as $tag) {
            if ($tag->getName() !== $name) {
                continue;
            }
            $result[] = $tag;
        }
        return $result;
    }
    
    /**
     * Returns an array of tags with type matching the given name. If no tags are found
     * an empty array is returned.
     *
     * @param string $name String to search by.
     *
     * @return TagWithType[]
     */
    public function getTagsWithTypeByName(string $name) : array {
        $result = [];
        foreach ($this->getTagsByName($name) as $tag) {
            if (!$tag instanceof TagWithType) {
                continue;
            }
            $result[] = $tag;
        }
        return $result;
    }
    
    /**
     * Checks if a tag of a certain type is present in this DocBlock.
     *
     * @param string $name Tag name to check for.
     */
    public function hasTag(string $name) : bool {
        foreach ($this->getTags() as $tag) {
            if ($tag->getName() === $name) {
                return true;
            }
        }
        return false;
    }
    
    /**
     * Remove a tag from this DocBlock.
     *
     * @param Tag $tagToRemove The tag to remove.
     */
    public function removeTag(Tag $tagToRemove) : void {
        foreach ($this->tags as $key => $tag) {
            if ($tag === $tagToRemove) {
                unset($this->tags[$key]);
                break;
            }
        }
    }
    
    /**
     * Adds a tag to this DocBlock.
     *
     * @param Tag $tag The tag to add.
     */
    private function addTag(Tag $tag) : void {
        $this->tags[] = $tag;
    }

}

Members

Title Sort descending Modifiers Object type Summary
DocBlock::$context private property @var Types\Context|null Information about the context of this DocBlock.
DocBlock::$description private property @var DocBlock\Description The actual description for this docblock.
DocBlock::$isTemplateEnd private property @var bool Does this DocBlock signify the end of a DocBlock template?
DocBlock::$isTemplateStart private property @var bool Is this DocBlock (the start of) a template?
DocBlock::$location private property @var Location|null Information about the location of this DocBlock.
DocBlock::$summary private property @var string The opening line for this docblock.
DocBlock::$tags private property @var Tag[] An array containing all the tags in this docblock; except inline.
DocBlock::addTag private function Adds a tag to this DocBlock.
DocBlock::getContext public function Returns the current context.
DocBlock::getDescription public function
DocBlock::getLocation public function Returns the current location.
DocBlock::getSummary public function
DocBlock::getTags public function Returns the tags for this DocBlock.
DocBlock::getTagsByName public function Returns an array of tags matching the given name. If no tags are found
an empty array is returned.
DocBlock::getTagsWithTypeByName public function Returns an array of tags with type matching the given name. If no tags are found
an empty array is returned.
DocBlock::hasTag public function Checks if a tag of a certain type is present in this DocBlock.
DocBlock::isTemplateEnd public function Returns whether this DocBlock is the end of a Template section.
DocBlock::isTemplateStart public function Returns whether this DocBlock is the start of a Template section.
DocBlock::removeTag public function Remove a tag from this DocBlock.
DocBlock::__construct public function
RSS feed
Powered by Drupal