Skip to content

Commit

Permalink
Merge pull request joomla#1 from elkuku/sniffs
Browse files Browse the repository at this point in the history
Add elseif declaration sniff
  • Loading branch information
realityking committed Oct 3, 2011
2 parents e972e1b + d1d6b11 commit 36676ef
Showing 1 changed file with 82 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
<?php
/**
* Squiz_Sniffs_ControlStructures_ElseIfDeclarationSniff.
*
* PHP version 5
*
* @category PHP
* @package PHP_CodeSniffer
* @author Greg Sherwood <[email protected]>
* @author Marc McIntyre <[email protected]>
* @copyright 2006 Squiz Pty Ltd (ABN 77 084 670 600)
* @license http://matrix.squiz.net/developer/tools/php_cs/licence BSD Licence
* @version CVS: $Id: ElseIfDeclarationSniff.php 301632 2010-07-28 01:57:56Z squiz $
* @link http://pear.php.net/package/PHP_CodeSniffer
*/

/**
* Squiz_Sniffs_ControlStructures_ElseIfDeclarationSniff.
*
* Verifies that there are no "else if" statements. The else and the if should
* be a single word "elseif".
*
* @category PHP
* @package PHP_CodeSniffer
* @author Greg Sherwood <[email protected]>
* @author Marc McIntyre <[email protected]>
* @copyright 2006 Squiz Pty Ltd (ABN 77 084 670 600)
* @license http://matrix.squiz.net/developer/tools/php_cs/licence BSD Licence
* @version Release: 1.3.0
* @link http://pear.php.net/package/PHP_CodeSniffer
*/
class Joomla_Sniffs_ControlStructures_ElseIfDeclarationSniff implements PHP_CodeSniffer_Sniff
{


/**
* Returns an array of tokens this test wants to listen for.
*
* @return array
*/
public function register()
{
return array(T_ELSE);

}//end register()


/**
* Processes this test, when one of its tokens is encountered.
*
* @param PHP_CodeSniffer_File $phpcsFile The file being scanned.
* @param int $stackPtr The position of the current token in the
* stack passed in $tokens.
*
* @return void
*/
public function process(PHP_CodeSniffer_File $phpcsFile, $stackPtr)
{
$tokens = $phpcsFile->getTokens();

$nextNonWhiteSpace = $phpcsFile->findNext(
T_WHITESPACE,
$stackPtr + 1,
null,
true,
null,
true
);

if($tokens[$nextNonWhiteSpace]['code'] == T_IF)
{
$error = 'Usage of ELSE IF is not allowed; use ELSEIF instead';
$phpcsFile->addError($error, $stackPtr, 'NotAllowed');
}

}//end process()


}//end class


?>

0 comments on commit 36676ef

Please sign in to comment.