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