Mercurial > hg > isophonics-drupal-site
annotate vendor/drupal/coder/coder_sniffer/Drupal/Sniffs/Classes/UseLeadingBackslashSniff.php @ 12:7a779792577d
Update Drupal core to v8.4.5 (via Composer)
author | Chris Cannam |
---|---|
date | Fri, 23 Feb 2018 15:52:07 +0000 |
parents | 4c8ae668cc8c |
children | 129ea1e6d783 |
rev | line source |
---|---|
Chris@0 | 1 <?php |
Chris@0 | 2 /** |
Chris@0 | 3 * Drupal_Sniffs_Classes_UseLeadingBackslashSniff. |
Chris@0 | 4 * |
Chris@0 | 5 * @category PHP |
Chris@0 | 6 * @package PHP_CodeSniffer |
Chris@0 | 7 * @link http://pear.php.net/package/PHP_CodeSniffer |
Chris@0 | 8 */ |
Chris@0 | 9 |
Chris@0 | 10 /** |
Chris@0 | 11 * Use statements to import classes must not begin with "\". |
Chris@0 | 12 * |
Chris@0 | 13 * @category PHP |
Chris@0 | 14 * @package PHP_CodeSniffer |
Chris@0 | 15 * @link http://pear.php.net/package/PHP_CodeSniffer |
Chris@0 | 16 */ |
Chris@0 | 17 class Drupal_Sniffs_Classes_UseLeadingBackslashSniff implements PHP_CodeSniffer_Sniff |
Chris@0 | 18 { |
Chris@0 | 19 |
Chris@0 | 20 |
Chris@0 | 21 /** |
Chris@0 | 22 * Returns an array of tokens this test wants to listen for. |
Chris@0 | 23 * |
Chris@0 | 24 * @return array |
Chris@0 | 25 */ |
Chris@0 | 26 public function register() |
Chris@0 | 27 { |
Chris@0 | 28 return array(T_USE); |
Chris@0 | 29 |
Chris@0 | 30 }//end register() |
Chris@0 | 31 |
Chris@0 | 32 |
Chris@0 | 33 /** |
Chris@0 | 34 * Processes this test, when one of its tokens is encountered. |
Chris@0 | 35 * |
Chris@0 | 36 * @param PHP_CodeSniffer_File $phpcsFile The file being scanned. |
Chris@0 | 37 * @param int $stackPtr The position of the current token in |
Chris@0 | 38 * the stack passed in $tokens. |
Chris@0 | 39 * |
Chris@0 | 40 * @return void |
Chris@0 | 41 */ |
Chris@0 | 42 public function process(PHP_CodeSniffer_File $phpcsFile, $stackPtr) |
Chris@0 | 43 { |
Chris@0 | 44 $tokens = $phpcsFile->getTokens(); |
Chris@0 | 45 |
Chris@0 | 46 // Only check use statements in the global scope. |
Chris@0 | 47 if (empty($tokens[$stackPtr]['conditions']) === false) { |
Chris@0 | 48 return; |
Chris@0 | 49 } |
Chris@0 | 50 |
Chris@0 | 51 $startPtr = $phpcsFile->findNext( |
Chris@0 | 52 PHP_CodeSniffer_Tokens::$emptyTokens, |
Chris@0 | 53 ($stackPtr + 1), |
Chris@0 | 54 null, |
Chris@0 | 55 true |
Chris@0 | 56 ); |
Chris@0 | 57 |
Chris@0 | 58 if ($startPtr !== null && $tokens[$startPtr]['code'] === T_NS_SEPARATOR) { |
Chris@0 | 59 $error = 'When importing a class with "use", do not include a leading \\'; |
Chris@0 | 60 $fix = $phpcsFile->addFixableError($error, $startPtr, 'SeparatorStart'); |
Chris@0 | 61 if ($fix === true) { |
Chris@0 | 62 $phpcsFile->fixer->replaceToken($startPtr, ''); |
Chris@0 | 63 } |
Chris@0 | 64 } |
Chris@0 | 65 |
Chris@0 | 66 }//end process() |
Chris@0 | 67 |
Chris@0 | 68 |
Chris@0 | 69 }//end class |