Chris@0
|
1 <?php
|
Chris@0
|
2 /**
|
Chris@17
|
3 * \Drupal\Sniffs\ControlStructures\InlineControlStructureSniff.
|
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@17
|
10 namespace Drupal\Sniffs\ControlStructures;
|
Chris@17
|
11
|
Chris@17
|
12 use PHP_CodeSniffer\Files\File;
|
Chris@17
|
13 use PHP_CodeSniffer\Standards\Generic\Sniffs\ControlStructures\InlineControlStructureSniff as GenericInlineControlStructureSniff;
|
Chris@17
|
14
|
Chris@0
|
15 /**
|
Chris@17
|
16 * \Drupal\Sniffs\ControlStructures\InlineControlStructureSniff.
|
Chris@0
|
17 *
|
Chris@0
|
18 * Verifies that inline control statements are not present. This Sniff overides
|
Chris@0
|
19 * the generic sniff because Drupal template files may use the alternative
|
Chris@0
|
20 * syntax for control structures. See
|
Chris@0
|
21 * http://www.php.net/manual/en/control-structures.alternative-syntax.php
|
Chris@0
|
22 *
|
Chris@0
|
23 * @category PHP
|
Chris@0
|
24 * @package PHP_CodeSniffer
|
Chris@0
|
25 * @link http://pear.php.net/package/PHP_CodeSniffer
|
Chris@0
|
26 */
|
Chris@17
|
27 class InlineControlStructureSniff extends GenericInlineControlStructureSniff
|
Chris@0
|
28 {
|
Chris@0
|
29
|
Chris@0
|
30
|
Chris@0
|
31 /**
|
Chris@0
|
32 * Processes this test, when one of its tokens is encountered.
|
Chris@0
|
33 *
|
Chris@17
|
34 * @param \PHP_CodeSniffer\Files\File $phpcsFile The file being scanned.
|
Chris@17
|
35 * @param int $stackPtr The position of the current token in
|
Chris@17
|
36 * the stack passed in $tokens.
|
Chris@0
|
37 *
|
Chris@0
|
38 * @return void
|
Chris@0
|
39 */
|
Chris@17
|
40 public function process(File $phpcsFile, $stackPtr)
|
Chris@0
|
41 {
|
Chris@0
|
42 $tokens = $phpcsFile->getTokens();
|
Chris@0
|
43
|
Chris@0
|
44 // Check for the alternate syntax for control structures with colons (:).
|
Chris@0
|
45 if (isset($tokens[$stackPtr]['parenthesis_closer']) === true) {
|
Chris@0
|
46 $start = $tokens[$stackPtr]['parenthesis_closer'];
|
Chris@0
|
47 } else {
|
Chris@0
|
48 $start = $stackPtr;
|
Chris@0
|
49 }
|
Chris@0
|
50
|
Chris@0
|
51 $scopeOpener = $phpcsFile->findNext(T_WHITESPACE, ($start + 1), null, true);
|
Chris@0
|
52 if ($tokens[$scopeOpener]['code'] === T_COLON) {
|
Chris@0
|
53 return;
|
Chris@0
|
54 }
|
Chris@0
|
55
|
Chris@0
|
56 parent::process($phpcsFile, $stackPtr);
|
Chris@0
|
57
|
Chris@0
|
58 }//end process()
|
Chris@0
|
59
|
Chris@0
|
60
|
Chris@0
|
61 }//end class
|