3
* Squiz_Sniffs_Functions_GlobalFunctionSniff.
8
* @package PHP_CodeSniffer
9
* @author Greg Sherwood <gsherwood@squiz.net>
10
* @author Marc McIntyre <mmcintyre@squiz.net>
11
* @copyright 2006-2012 Squiz Pty Ltd (ABN 77 084 670 600)
12
* @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence
13
* @link http://pear.php.net/package/PHP_CodeSniffer
17
* Squiz_Sniffs_Functions_GlobalFunctionSniff.
19
* Tests for functions outside of classes.
22
* @package PHP_CodeSniffer
23
* @author Greg Sherwood <gsherwood@squiz.net>
24
* @author Marc McIntyre <mmcintyre@squiz.net>
25
* @copyright 2006-2012 Squiz Pty Ltd (ABN 77 084 670 600)
26
* @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence
27
* @version Release: 1.5.0RC2
28
* @link http://pear.php.net/package/PHP_CodeSniffer
30
class Squiz_Sniffs_Functions_GlobalFunctionSniff implements PHP_CodeSniffer_Sniff
35
* Returns an array of tokens this test wants to listen for.
39
public function register()
41
return array(T_FUNCTION);
47
* Processes this test, when one of its tokens is encountered.
49
* @param PHP_CodeSniffer_File $phpcsFile The file being scanned.
50
* @param int $stackPtr The position of the current token in the
51
* stack passed in $tokens.
55
public function process(PHP_CodeSniffer_File $phpcsFile, $stackPtr)
57
$tokens = $phpcsFile->getTokens();
59
if (empty($tokens[$stackPtr]['conditions']) === true) {
60
$functionName = $phpcsFile->getDeclarationName($stackPtr);
61
if ($functionName === null) {
65
// Special exception for __autoload as it needs to be global.
66
if ($functionName !== '__autoload') {
67
$error = 'Consider putting global function "%s" in a static class';
68
$data = array($functionName);
69
$phpcsFile->addWarning($error, $stackPtr, 'Found', $data);