* Dariusz Rumiński * * This source file is subject to the MIT license that is bundled * with this source code in the file LICENSE. */ namespace PhpCsFixer\Fixer\Casing; use PhpCsFixer\AbstractFixer; use PhpCsFixer\FixerDefinition\CodeSample; use PhpCsFixer\FixerDefinition\FixerDefinition; use PhpCsFixer\FixerDefinition\FixerDefinitionInterface; use PhpCsFixer\Tokenizer\Token; use PhpCsFixer\Tokenizer\Tokens; /** * Fixer for rules defined in PSR2 ¶2.5. * * @author Dariusz Rumiński */ final class LowercaseKeywordsFixer extends AbstractFixer { /** * @var int[] */ private static array $excludedTokens = [T_HALT_COMPILER]; public function getDefinition(): FixerDefinitionInterface { return new FixerDefinition( 'PHP keywords MUST be in lower case.', [ new CodeSample( 'isAnyTokenKindsFound(Token::getKeywords()); } protected function applyFix(\SplFileInfo $file, Tokens $tokens): void { foreach ($tokens as $index => $token) { if ($token->isKeyword() && !$token->isGivenKind(self::$excludedTokens)) { $tokens[$index] = new Token([$token->getId(), strtolower($token->getContent())]); } } } }