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

Source for file ValidClassNameSniff.php

Documentation is available at ValidClassNameSniff.php

  1. <?php
  2. /**
  3.  * Ensures classes are in camel caps, and the first letter is capitalised.
  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\Squiz\Sniffs\Classes;
  11.  
  12. use PHP_CodeSniffer\Sniffs\Sniff;
  13. use PHP_CodeSniffer\Files\File;
  14. use PHP_CodeSniffer\Util\Common;
  15.  
  16. class ValidClassNameSniff implements Sniff
  17. {
  18.  
  19.  
  20.     /**
  21.      * Returns an array of tokens this test wants to listen for.
  22.      *
  23.      * @return array 
  24.      */
  25.     public function register()
  26.     {
  27.         return array(
  28.                 T_CLASS,
  29.                 T_INTERFACE,
  30.                 T_TRAIT,
  31.                );
  32.  
  33.     }//end register()
  34.  
  35.  
  36.     /**
  37.      * Processes this test, when one of its tokens is encountered.
  38.      *
  39.      * @param \PHP_CodeSniffer\Files\File $phpcsFile The current file being processed.
  40.      * @param int                         $stackPtr  The position of the current token in the
  41.      *                                                stack passed in $tokens.
  42.      *
  43.      * @return void 
  44.      */
  45.     public function process(File $phpcsFile$stackPtr)
  46.     {
  47.         $tokens $phpcsFile->getTokens();
  48.  
  49.         if (isset($tokens[$stackPtr]['scope_opener']=== false{
  50.             $error 'Possible parse error: %s missing opening or closing brace';
  51.             $data  = array($tokens[$stackPtr]['content']);
  52.             $phpcsFile->addWarning($error$stackPtr'MissingBrace'$data);
  53.             return;
  54.         }
  55.  
  56.         // Determine the name of the class or interface. Note that we cannot
  57.         // simply look for the first T_STRING because a class name
  58.         // starting with the number will be multiple tokens.
  59.         $opener    $tokens[$stackPtr]['scope_opener'];
  60.         $nameStart $phpcsFile->findNext(T_WHITESPACE($stackPtr + 1)$openertrue);
  61.         $nameEnd   $phpcsFile->findNext(T_WHITESPACE$nameStart$opener);
  62.         if ($nameEnd === false{
  63.             $name $tokens[$nameStart]['content'];
  64.         else {
  65.             $name trim($phpcsFile->getTokensAsString($nameStart($nameEnd $nameStart)));
  66.         }
  67.  
  68.         // Check for camel caps format.
  69.         $valid = Common::isCamelCaps($nametruetruefalse);
  70.         if ($valid === false{
  71.             $type  ucfirst($tokens[$stackPtr]['content']);
  72.             $error '%s name "%s" is not in camel caps format';
  73.             $data  = array(
  74.                       $type,
  75.                       $name,
  76.                      );
  77.             $phpcsFile->addError($error$stackPtr'NotCamelCaps'$data);
  78.             $phpcsFile->recordMetric($stackPtr'CamelCase class name''no');
  79.         else {
  80.             $phpcsFile->recordMetric($stackPtr'CamelCase class name''yes');
  81.         }
  82.  
  83.     }//end process()
  84.  
  85.  
  86. }//end class

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