When PHP_CodeSniffer encounters on the the tokens specified in $tokens,
it invokes the process method of the sniff.
public addTokenListener ( PHP_CodeSniffer_Sniff $listener, array $tokens ) : void | ||
$listener | PHP_CodeSniffer_Sniff | The listener to add to the listener stack. |
$tokens | array | |
return | void |
/** * Processes the tokens that this test is listening for. * * @param PHP_CodeSniffer_File $phpcsFile The file where this token was found. * @param int $stackPtr The position in the stack where this * token was found. * * @return void * @see processTokenWithinScope() */ public final function process(PHP_CodeSniffer_File $phpcsFile, $stackPtr) { $file = $phpcsFile->getFilename(); if ($this->currFile !== $file) { // We have changed files, so clean up. $this->currScope = null; $this->currFile = $file; } $tokens = $phpcsFile->getTokens(); if (in_array($tokens[$stackPtr]['code'], $this->_scopeTokens) === true) { $this->currScope = $stackPtr; $phpcsFile->addTokenListener($this, $this->_tokens); } else { if ($this->currScope !== null && isset($tokens[$this->currScope]['scope_closer']) === true && $stackPtr > $tokens[$this->currScope]['scope_closer']) { $this->currScope = null; if ($this->_listenOutside === true) { // This is a token outside the current scope, so notify the // extender as they wish to know about this. $this->processTokenOutsideScope($phpcsFile, $stackPtr); } else { // Don't remove the listener if the extender wants to know about // tokens that live outside the current scope. $phpcsFile->removeTokenListener($this, $this->_tokens); } } else { if ($this->currScope !== null) { $this->processTokenWithinScope($phpcsFile, $stackPtr, $this->currScope); } else { $this->processTokenOutsideScope($phpcsFile, $stackPtr); } } } }