SlevomatCodingStandard\Sniffs\Arrays\TrailingArrayCommaSniff::process PHP Method

process() public method

public process ( PHP_CodeSniffer_File $phpcsFile, integer $stackPointer )
$phpcsFile PHP_CodeSniffer_File
$stackPointer integer
    public function process(PHP_CodeSniffer_File $phpcsFile, $stackPointer)
    {
        $tokens = $phpcsFile->getTokens();
        $arrayToken = $tokens[$stackPointer];
        $closeParenthesisPointer = $arrayToken['bracket_closer'];
        $openParenthesisToken = $tokens[$arrayToken['bracket_opener']];
        $closeParenthesisToken = $tokens[$closeParenthesisPointer];
        if ($openParenthesisToken['line'] === $closeParenthesisToken['line']) {
            return;
        }
        $previousToCloseParenthesisPointer = TokenHelper::findPreviousEffective($phpcsFile, $closeParenthesisPointer - 1);
        $previousToCloseParenthesisToken = $tokens[$previousToCloseParenthesisPointer];
        if ($previousToCloseParenthesisToken['code'] !== T_COMMA && $closeParenthesisToken['line'] !== $previousToCloseParenthesisToken['line']) {
            $fix = $phpcsFile->addFixableError('Multiline arrays must have a trailing comma after the last element', $previousToCloseParenthesisPointer, self::CODE_MISSING_TRAILING_COMMA);
            if ($fix) {
                $phpcsFile->fixer->beginChangeset();
                $phpcsFile->fixer->addContent($previousToCloseParenthesisPointer, ',');
                $phpcsFile->fixer->endChangeset();
            }
        }
    }
TrailingArrayCommaSniff