function AnonClassDeclarationSniff::processSingleLineArgumentList
Processes this test, when one of its tokens is encountered.
Parameters
\PHP_CodeSniffer\Files\File $phpcsFile The file being scanned.:
int $stackPtr The position of the current token: in the stack passed in $tokens.
Return value
void
1 call to AnonClassDeclarationSniff::processSingleLineArgumentList()
- AnonClassDeclarationSniff::process in vendor/
squizlabs/ php_codesniffer/ src/ Standards/ PSR12/ Sniffs/ Classes/ AnonClassDeclarationSniff.php - Processes this test, when one of its tokens is encountered.
File
-
vendor/
squizlabs/ php_codesniffer/ src/ Standards/ PSR12/ Sniffs/ Classes/ AnonClassDeclarationSniff.php, line 147
Class
Namespace
PHP_CodeSniffer\Standards\PSR12\Sniffs\ClassesCode
public function processSingleLineArgumentList(File $phpcsFile, $stackPtr) {
$tokens = $phpcsFile->getTokens();
$openBracket = $tokens[$stackPtr]['parenthesis_opener'];
$closeBracket = $tokens[$openBracket]['parenthesis_closer'];
if ($openBracket === $closeBracket - 1) {
return;
}
if ($tokens[$openBracket + 1]['code'] === T_WHITESPACE) {
$error = 'Space after opening parenthesis of single-line argument list prohibited';
$fix = $phpcsFile->addFixableError($error, $stackPtr, 'SpaceAfterOpenBracket');
if ($fix === true) {
$phpcsFile->fixer
->replaceToken($openBracket + 1, '');
}
}
$spaceBeforeClose = 0;
$prev = $phpcsFile->findPrevious(T_WHITESPACE, $closeBracket - 1, $openBracket, true);
if ($tokens[$prev]['code'] === T_END_HEREDOC || $tokens[$prev]['code'] === T_END_NOWDOC) {
// Need a newline after these tokens, so ignore this rule.
return;
}
if ($tokens[$prev]['line'] !== $tokens[$closeBracket]['line']) {
$spaceBeforeClose = 'newline';
}
else {
if ($tokens[$closeBracket - 1]['code'] === T_WHITESPACE) {
$spaceBeforeClose = $tokens[$closeBracket - 1]['length'];
}
}
if ($spaceBeforeClose !== 0) {
$error = 'Space before closing parenthesis of single-line argument list prohibited';
$fix = $phpcsFile->addFixableError($error, $stackPtr, 'SpaceBeforeCloseBracket');
if ($fix === true) {
if ($spaceBeforeClose === 'newline') {
$phpcsFile->fixer
->beginChangeset();
$closingContent = ')';
$next = $phpcsFile->findNext(T_WHITESPACE, $closeBracket + 1, null, true);
if ($tokens[$next]['code'] === T_SEMICOLON) {
$closingContent .= ';';
for ($i = $closeBracket + 1; $i <= $next; $i++) {
$phpcsFile->fixer
->replaceToken($i, '');
}
}
// We want to jump over any whitespace or inline comment and
// move the closing parenthesis after any other token.
$prev = $closeBracket - 1;
while (isset(Tokens::$emptyTokens[$tokens[$prev]['code']]) === true) {
if ($tokens[$prev]['code'] === T_COMMENT && strpos($tokens[$prev]['content'], '*/') !== false) {
break;
}
$prev--;
}
$phpcsFile->fixer
->addContent($prev, $closingContent);
$prevNonWhitespace = $phpcsFile->findPrevious(T_WHITESPACE, $closeBracket - 1, null, true);
for ($i = $prevNonWhitespace + 1; $i <= $closeBracket; $i++) {
$phpcsFile->fixer
->replaceToken($i, '');
}
$phpcsFile->fixer
->endChangeset();
}
else {
$phpcsFile->fixer
->replaceToken($closeBracket - 1, '');
}
//end if
}
//end if
}
//end if
}