*/ public function register() { return [\T_ANON_CLASS]; } /** * Processes this test, when one of its tokens is encountered. * * @since 1.0.0 * * @param \PHP_CodeSniffer\Files\File $phpcsFile The file being scanned. * @param int $stackPtr The position of the current token * in the stack passed in $tokens. * * @return void */ public function process(File $phpcsFile, $stackPtr) { $tokens = $phpcsFile->getTokens(); $nextNonEmpty = $phpcsFile->findNext(Tokens::$emptyTokens, ($stackPtr + 1), null, true); // Note: no need to check for `false` as PHPCS won't retokenize `class` to `T_ANON_CLASS` in that case. if ($tokens[$nextNonEmpty]['code'] === \T_OPEN_PARENTHESIS) { // Parentheses found. $phpcsFile->recordMetric($stackPtr, self::METRIC_NAME, 'yes'); return; } $phpcsFile->recordMetric($stackPtr, self::METRIC_NAME, 'no'); $fix = $phpcsFile->addFixableError( 'Parenthesis required when creating a new anonymous class.', $stackPtr, 'Missing' ); if ($fix === true) { $phpcsFile->fixer->addContent($stackPtr, '()'); } } }