PHP_CodeSniffer
[ class tree: PHP_CodeSniffer ] [ index: PHP_CodeSniffer ] [ all elements ]

Source for file LowerCaseKeywordSniff.php

Documentation is available at LowerCaseKeywordSniff.php

  1. <?php
  2. /**
  3.  * Checks that all PHP keywords are lowercase.
  4.  *
  5.  * @author    Greg Sherwood <gsherwood@squiz.net>
  6.  * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600)
  7.  * @license   https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence
  8.  */
  9.  
  10. namespace PHP_CodeSniffer\Standards\Generic\Sniffs\PHP;
  11.  
  12. use PHP_CodeSniffer\Sniffs\Sniff;
  13. use PHP_CodeSniffer\Files\File;
  14.  
  15. class LowerCaseKeywordSniff implements Sniff
  16. {
  17.  
  18.  
  19.     /**
  20.      * Returns an array of tokens this test wants to listen for.
  21.      *
  22.      * @return array 
  23.      */
  24.     public function register()
  25.     {
  26.         return array(
  27.                 T_HALT_COMPILER,
  28.                 T_ABSTRACT,
  29.                 T_ARRAY,
  30.                 T_ARRAY_HINT,
  31.                 T_AS,
  32.                 T_BREAK,
  33.                 T_CALLABLE,
  34.                 T_CASE,
  35.                 T_CATCH,
  36.                 T_CLASS,
  37.                 T_CLONE,
  38.                 T_CLOSURE,
  39.                 T_CONST,
  40.                 T_CONTINUE,
  41.                 T_DECLARE,
  42.                 T_DEFAULT,
  43.                 T_DO,
  44.                 T_ECHO,
  45.                 T_ELSE,
  46.                 T_ELSEIF,
  47.                 T_EMPTY,
  48.                 T_ENDDECLARE,
  49.                 T_ENDFOR,
  50.                 T_ENDFOREACH,
  51.                 T_ENDIF,
  52.                 T_ENDSWITCH,
  53.                 T_ENDWHILE,
  54.                 T_EVAL,
  55.                 T_EXIT,
  56.                 T_EXTENDS,
  57.                 T_FINAL,
  58.                 T_FINALLY,
  59.                 T_FOR,
  60.                 T_FOREACH,
  61.                 T_FUNCTION,
  62.                 T_GLOBAL,
  63.                 T_GOTO,
  64.                 T_IF,
  65.                 T_IMPLEMENTS,
  66.                 T_INCLUDE,
  67.                 T_INCLUDE_ONCE,
  68.                 T_INSTANCEOF,
  69.                 T_INSTEADOF,
  70.                 T_INTERFACE,
  71.                 T_ISSET,
  72.                 T_LIST,
  73.                 T_LOGICAL_AND,
  74.                 T_LOGICAL_OR,
  75.                 T_LOGICAL_XOR,
  76.                 T_NAMESPACE,
  77.                 T_NEW,
  78.                 T_PARENT,
  79.                 T_PRINT,
  80.                 T_PRIVATE,
  81.                 T_PROTECTED,
  82.                 T_PUBLIC,
  83.                 T_REQUIRE,
  84.                 T_REQUIRE_ONCE,
  85.                 T_RETURN,
  86.                 T_SELF,
  87.                 T_STATIC,
  88.                 T_SWITCH,
  89.                 T_THROW,
  90.                 T_TRAIT,
  91.                 T_TRY,
  92.                 T_UNSET,
  93.                 T_USE,
  94.                 T_VAR,
  95.                 T_WHILE,
  96.                 T_YIELD,
  97.                 T_YIELD_FROM,
  98.                );
  99.  
  100.     }//end register()
  101.  
  102.  
  103.     /**
  104.      * Processes this sniff, when one of its tokens is encountered.
  105.      *
  106.      * @param \PHP_CodeSniffer\Files\File $phpcsFile The file being scanned.
  107.      * @param int                         $stackPtr  The position of the current token in the
  108.      *                                                stack passed in $tokens.
  109.      *
  110.      * @return void 
  111.      */
  112.     public function process(File $phpcsFile$stackPtr)
  113.     {
  114.         $tokens  $phpcsFile->getTokens();
  115.         $keyword $tokens[$stackPtr]['content'];
  116.         if (strtolower($keyword!== $keyword{
  117.             if ($keyword === strtoupper($keyword)) {
  118.                 $phpcsFile->recordMetric($stackPtr'PHP keyword case''upper');
  119.             else {
  120.                 $phpcsFile->recordMetric($stackPtr'PHP keyword case''mixed');
  121.             }
  122.  
  123.             $error 'PHP keywords must be lowercase; expected "%s" but found "%s"';
  124.             $data  = array(
  125.                       strtolower($keyword),
  126.                       $keyword,
  127.                      );
  128.  
  129.             $fix $phpcsFile->addFixableError($error$stackPtr'Found'$data);
  130.             if ($fix === true{
  131.                 $phpcsFile->fixer->replaceToken($stackPtrstrtolower($keyword));
  132.             }
  133.         else {
  134.             $phpcsFile->recordMetric($stackPtr'PHP keyword case''lower');
  135.         }
  136.  
  137.     }//end process()
  138.  
  139.  
  140. }//end class

Documentation generated on Mon, 11 Mar 2019 15:27:37 -0400 by phpDocumentor 1.4.4. PEAR Logo Copyright © PHP Group 2004.