3
* PSR2_Sniffs_Namespaces_NamespaceDeclarationSniff.
8
* @package PHP_CodeSniffer
9
* @author Greg Sherwood <gsherwood@squiz.net>
10
* @copyright 2006-2012 Squiz Pty Ltd (ABN 77 084 670 600)
11
* @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence
12
* @link http://pear.php.net/package/PHP_CodeSniffer
16
* PSR2_Sniffs_Namespaces_NamespaceDeclarationSniff.
18
* Ensures namespaces are declared correctly.
21
* @package PHP_CodeSniffer
22
* @author Greg Sherwood <gsherwood@squiz.net>
23
* @copyright 2006-2012 Squiz Pty Ltd (ABN 77 084 670 600)
24
* @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence
25
* @version Release: 1.5.0RC2
26
* @link http://pear.php.net/package/PHP_CodeSniffer
28
class PSR2_Sniffs_Namespaces_NamespaceDeclarationSniff implements PHP_CodeSniffer_Sniff
33
* Returns an array of tokens this test wants to listen for.
37
public function register()
39
return array(T_NAMESPACE);
45
* Processes this test, when one of its tokens is encountered.
47
* @param PHP_CodeSniffer_File $phpcsFile The file being scanned.
48
* @param int $stackPtr The position of the current token in
49
* the stack passed in $tokens.
53
public function process(PHP_CodeSniffer_File $phpcsFile, $stackPtr)
55
$tokens = $phpcsFile->getTokens();
57
for ($i = ($stackPtr + 1); $i < $phpcsFile->numTokens; $i++) {
58
if ($tokens[$i]['line'] === $tokens[$stackPtr]['line']) {
65
// The $i var now points to the first token on the line after the
66
// namespace declaration, which must be a blank line.
67
$next = $phpcsFile->findNext(T_WHITESPACE, $i, $phpcsFile->numTokens, true);
68
if ($tokens[$next]['line'] === $tokens[$i]['line']) {
69
$error = 'There must be one blank line after the namespace declaration';
70
$phpcsFile->addError($error, $stackPtr, 'BlankLineAfter');