/**
* Processes this test, when one of its tokens is encountered.
*
* @param PHP_CodeSniffer_File $phpcsFile The file being scanned.
* @param integer $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();
$decName = $phpcsFile->findNext(T_STRING, $stackPtr);
$fileName = dirname($phpcsFile->getFilename());
$GnPosition = strrpos($fileName, DIRECTORY_SEPARATOR . 'GN');
if (false === $GnPosition) {
return;
}
$fileName = substr($fileName, $GnPosition + 1);
$fileName .= DIRECTORY_SEPARATOR . basename($phpcsFile->getFilename());
$fileName = substr($fileName, 0, strrpos($fileName, '.'));
$className = $fileName;
$className = substr($className, strpos($className, '_'));
$className = substr($className, strpos($className, DIRECTORY_SEPARATOR) + 1);
$fileName = str_replace(DIRECTORY_SEPARATOR, '_', $fileName);
$className = str_replace(DIRECTORY_SEPARATOR, '_', $className);
if (strpos($fileName, '__') === false) {
$className = $fileName;
}
if ($tokens[$decName]['content'] !== $fileName and $tokens[$decName]['content'] !== $className) {
$name = ucfirst($tokens[$stackPtr]['content']);
$file .= '"' . $tokens[$stackPtr]['content'] . ' ' . $className . '".';
$phpcsFile->addEvent('MATCH_CLASS_NAME', array('name' => $name, 'file' => $file), $stackPtr);
}
}