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

Breadcrumb

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

function AnnotationHelper::processDocComment

*

Return value

list<IdentifierRuleError> errors

File

vendor/phpstan/phpstan-phpunit/src/Rules/PHPUnit/AnnotationHelper.php, line 35

Class

AnnotationHelper

Namespace

PHPStan\Rules\PHPUnit

Code

public function processDocComment(Doc $docComment) : array {
    $errors = [];
    $docCommentLines = preg_split("/((\r?\n)|(\r\n?))/", $docComment->getText());
    if ($docCommentLines === false) {
        return [];
    }
    foreach ($docCommentLines as $docCommentLine) {
        // These annotations can't be retrieved using the getResolvedPhpDoc method on the FileTypeMapper as they are not present when they are invalid
        $annotation = preg_match('/(?<annotation>@(?<property>[a-zA-Z]+)(?<whitespace>\\s*)(?<value>.*))/', $docCommentLine, $matches);
        if ($annotation === false) {
            continue;
            // Line without annotation
        }
        if (array_key_exists('property', $matches) === false || array_key_exists('whitespace', $matches) === false || array_key_exists('annotation', $matches) === false) {
            continue;
        }
        if (!in_array($matches['property'], self::ANNOTATIONS_WITH_PARAMS, true) || $matches['whitespace'] !== '') {
            continue;
        }
        $errors[] = RuleErrorBuilder::message('Annotation "' . $matches['annotation'] . '" is invalid, "@' . $matches['property'] . '" should be followed by a space and a value.')->identifier('phpunit.invalidPhpDoc')
            ->build();
    }
    return $errors;
}

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal