Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Public Member Functions
MethodArgumentsSniff Class Reference
Inheritance diagram for MethodArgumentsSniff:

Public Member Functions

 register ()
 
 process (File $phpcsFile, $stackPtr)
 

Detailed Description

Sniff to validate method arguments annotations

Definition at line 17 of file MethodArgumentsSniff.php.

Member Function Documentation

◆ process()

process ( File  $phpcsFile,
  $stackPtr 
)

Definition at line 539 of file MethodArgumentsSniff.php.

540  {
541  $tokens = $phpcsFile->getTokens();
542  $numTokens = count($tokens);
543  $previousCommentOpenPtr = $phpcsFile->findPrevious(T_DOC_COMMENT_OPEN_TAG, $stackPtr-1, 0);
544  $previousCommentClosePtr = $phpcsFile->findPrevious(T_DOC_COMMENT_CLOSE_TAG, $stackPtr-1, 0);
545  if (!$this->validateCommentBlockExists($phpcsFile, $previousCommentClosePtr, $stackPtr)) {
546  $phpcsFile->addError('Comment block is missing', $stackPtr, 'MethodArguments');
547  return;
548  }
549  $openParenthesisPtr = $phpcsFile->findNext(T_OPEN_PARENTHESIS, $stackPtr+1, $numTokens);
550  $closedParenthesisPtr = $phpcsFile->findNext(T_CLOSE_PARENTHESIS, $stackPtr+1, $numTokens);
551  $methodArguments = $this->getMethodArguments($phpcsFile, $openParenthesisPtr, $closedParenthesisPtr);
552  $paramPointers = $paramDefinitions = [];
553  for ($tempPtr = $previousCommentOpenPtr; $tempPtr < $previousCommentClosePtr; $tempPtr++) {
554  if (strtolower($tokens[$tempPtr]['content']) === '@param') {
555  $paramPointers[] = $tempPtr;
556  $paramAnnotationParts = explode(' ', $tokens[$tempPtr+2]['content']);
557  if (count($paramAnnotationParts) === 1) {
558  if ((preg_match('/^\$.*/', $paramAnnotationParts[0]))) {
559  $paramDefinitions[] = [
560  'type' => null,
561  'paramName' => rtrim(ltrim($tokens[$tempPtr+2]['content'], '&'), ',')
562  ];
563  } else {
564  $paramDefinitions[] = [
565  'type' => $tokens[$tempPtr+2]['content'],
566  'paramName' => null
567  ];
568  }
569  } else {
570  $paramDefinitions[] = [
571  'type' => $paramAnnotationParts[0],
572  'paramName' => rtrim(ltrim($paramAnnotationParts[1], '&'), ',')
573  ];
574  }
575  }
576  }
577  $this->validateMethodParameterAnnotations(
578  $stackPtr,
579  $paramDefinitions,
580  $paramPointers,
581  $phpcsFile,
582  $methodArguments,
583  $previousCommentOpenPtr,
584  $previousCommentClosePtr
585  );
586  }
$tokens
Definition: cards_list.phtml:9

◆ register()

register ( )

Definition at line 45 of file MethodArgumentsSniff.php.

45  : array
46  {
47  return [
48  T_FUNCTION
49  ];
50  }

The documentation for this class was generated from the following file: