function ClassDeclarationSniff::process
Same name in this branch
- 11.1.x vendor/drupal/coder/coder_sniffer/Drupal/Sniffs/Classes/ClassDeclarationSniff.php \Drupal\Sniffs\Classes\ClassDeclarationSniff::process()
- 11.1.x vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Classes/ClassDeclarationSniff.php \PHP_CodeSniffer\Standards\Squiz\Sniffs\Classes\ClassDeclarationSniff::process()
- 11.1.x vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Sniffs/Classes/ClassDeclarationSniff.php \PHP_CodeSniffer\Standards\PSR2\Sniffs\Classes\ClassDeclarationSniff::process()
- 11.1.x vendor/squizlabs/php_codesniffer/src/Standards/PSR1/Sniffs/Classes/ClassDeclarationSniff.php \PHP_CodeSniffer\Standards\PSR1\Sniffs\Classes\ClassDeclarationSniff::process()
Processes this test, when one of its tokens is encountered.
Parameters
\PHP_CodeSniffer\Files\File $phpcsFile The file being scanned.:
integer $stackPtr The position of the current token in the: stack passed in $tokens.
Return value
void
Overrides Sniff::process
2 calls to ClassDeclarationSniff::process()
- ClassDeclarationSniff::process in vendor/
squizlabs/ php_codesniffer/ src/ Standards/ PSR2/ Sniffs/ Classes/ ClassDeclarationSniff.php - Processes this test, when one of its tokens is encountered.
- ClassDeclarationSniff::process in vendor/
squizlabs/ php_codesniffer/ src/ Standards/ PSR2/ Sniffs/ Classes/ ClassDeclarationSniff.php - Processes this test, when one of its tokens is encountered.
1 method overrides ClassDeclarationSniff::process()
- ClassDeclarationSniff::process in vendor/
squizlabs/ php_codesniffer/ src/ Standards/ PSR2/ Sniffs/ Classes/ ClassDeclarationSniff.php - Processes this test, when one of its tokens is encountered.
File
-
vendor/
squizlabs/ php_codesniffer/ src/ Standards/ PEAR/ Sniffs/ Classes/ ClassDeclarationSniff.php, line 45
Class
Namespace
PHP_CodeSniffer\Standards\PEAR\Sniffs\ClassesCode
public function process(File $phpcsFile, $stackPtr) {
$tokens = $phpcsFile->getTokens();
$errorData = [
strtolower($tokens[$stackPtr]['content']),
];
if (isset($tokens[$stackPtr]['scope_opener']) === false) {
$error = 'Possible parse error: %s missing opening or closing brace';
$phpcsFile->addWarning($error, $stackPtr, 'MissingBrace', $errorData);
return;
}
$curlyBrace = $tokens[$stackPtr]['scope_opener'];
$lastContent = $phpcsFile->findPrevious(T_WHITESPACE, $curlyBrace - 1, $stackPtr, true);
$classLine = $tokens[$lastContent]['line'];
$braceLine = $tokens[$curlyBrace]['line'];
if ($braceLine === $classLine) {
$phpcsFile->recordMetric($stackPtr, 'Class opening brace placement', 'same line');
$error = 'Opening brace of a %s must be on the line after the definition';
$fix = $phpcsFile->addFixableError($error, $curlyBrace, 'OpenBraceNewLine', $errorData);
if ($fix === true) {
$phpcsFile->fixer
->beginChangeset();
if ($tokens[$curlyBrace - 1]['code'] === T_WHITESPACE) {
$phpcsFile->fixer
->replaceToken($curlyBrace - 1, '');
}
$phpcsFile->fixer
->addNewlineBefore($curlyBrace);
$phpcsFile->fixer
->endChangeset();
}
return;
}
else {
$phpcsFile->recordMetric($stackPtr, 'Class opening brace placement', 'new line');
if ($braceLine > $classLine + 1) {
$error = 'Opening brace of a %s must be on the line following the %s declaration; found %s line(s)';
$data = [
$tokens[$stackPtr]['content'],
$tokens[$stackPtr]['content'],
$braceLine - $classLine - 1,
];
$fix = $phpcsFile->addFixableError($error, $curlyBrace, 'OpenBraceWrongLine', $data);
if ($fix === true) {
$phpcsFile->fixer
->beginChangeset();
for ($i = $curlyBrace - 1; $i > $lastContent; $i--) {
if ($tokens[$i]['line'] === $tokens[$curlyBrace]['line'] + 1) {
break;
}
$phpcsFile->fixer
->replaceToken($i, '');
}
$phpcsFile->fixer
->endChangeset();
}
return;
}
//end if
}
//end if
if ($tokens[$curlyBrace + 1]['content'] !== $phpcsFile->eolChar) {
$error = 'Opening %s brace must be on a line by itself';
$nextNonWhitespace = $phpcsFile->findNext(T_WHITESPACE, $curlyBrace + 1, null, true);
if ($tokens[$nextNonWhitespace]['code'] === T_PHPCS_IGNORE) {
// Don't auto-fix if the next thing is a PHPCS ignore annotation.
$phpcsFile->addError($error, $curlyBrace, 'OpenBraceNotAlone', $errorData);
}
else {
$fix = $phpcsFile->addFixableError($error, $curlyBrace, 'OpenBraceNotAlone', $errorData);
if ($fix === true) {
$phpcsFile->fixer
->addNewline($curlyBrace);
}
}
}
if ($tokens[$curlyBrace - 1]['code'] === T_WHITESPACE) {
$prevContent = $tokens[$curlyBrace - 1]['content'];
if ($prevContent === $phpcsFile->eolChar) {
$spaces = 0;
}
else {
$spaces = $tokens[$curlyBrace - 1]['length'];
}
$first = $phpcsFile->findFirstOnLine(T_WHITESPACE, $stackPtr, true);
$expected = $tokens[$first]['column'] - 1;
if ($spaces !== $expected) {
$error = 'Expected %s spaces before opening brace; %s found';
$data = [
$expected,
$spaces,
];
$fix = $phpcsFile->addFixableError($error, $curlyBrace, 'SpaceBeforeBrace', $data);
if ($fix === true) {
$indent = str_repeat(' ', $expected);
if ($spaces === 0) {
$phpcsFile->fixer
->addContentBefore($curlyBrace, $indent);
}
else {
$phpcsFile->fixer
->replaceToken($curlyBrace - 1, $indent);
}
}
}
}
//end if
}