本文整理汇总了PHP中PHP_CodeSniffer::getTokenSniffs方法的典型用法代码示例。如果您正苦于以下问题:PHP PHP_CodeSniffer::getTokenSniffs方法的具体用法?PHP PHP_CodeSniffer::getTokenSniffs怎么用?PHP PHP_CodeSniffer::getTokenSniffs使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PHP_CodeSniffer
的用法示例。
在下文中一共展示了PHP_CodeSniffer::getTokenSniffs方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: runTest
/**
* Tests the extending classes Sniff class.
*
* @return void
* @throws PHPUnit_Framework_Error
*/
protected final function runTest()
{
// Skip this test if we can't run in this environment.
if ($this->shouldSkipTest() === true) {
$this->markTestSkipped();
}
// The basis for determining file locations.
$basename = substr(get_class($this), 0, -8);
// The name of the coding standard we are testing.
$standardName = substr($basename, 0, strpos($basename, '_'));
// The class name of the sniff we are testing.
$sniffClass = str_replace('_Tests_', '_Sniffs_', $basename) . 'Sniff';
if (is_file(dirname(__FILE__) . '/../../CodeSniffer.php') === true) {
// We have not been installed.
$standardsDir = realpath(dirname(__FILE__) . '/../../CodeSniffer/Standards');
$testFileBase = $standardsDir . '/' . str_replace('_', '/', $basename) . 'UnitTest.';
} else {
// The name of the dummy file we are testing.
$testFileBase = dirname(__FILE__) . '/' . str_replace('_', '/', $basename) . 'UnitTest.';
}
// Get a list of all test files to check. These will have the same base
// name but different extensions. We ignore the .php file as it is the
// class.
$testFiles = array();
$dir = substr($testFileBase, 0, strrpos($testFileBase, '/'));
$di = new DirectoryIterator($dir);
foreach ($di as $file) {
$path = $file->getPathname();
if (substr($path, 0, strlen($testFileBase)) === $testFileBase) {
if ($path !== $testFileBase . 'php') {
$testFiles[] = $path;
}
}
}
// Get them in order. This is particularly important for multi-file sniffs.
sort($testFiles);
$failureMessages = array();
$multiFileSniff = false;
foreach ($testFiles as $testFile) {
try {
self::$phpcs->process($testFile, $standardName, array($sniffClass));
} catch (Exception $e) {
$this->fail('An unexpected exception has been caught: ' . $e->getMessage());
}
// After processing a file, check if the sniff was actually
// a multi-file sniff (i.e., had no indivdual file sniffs).
// If it is, we can skip checking of the other files and
// do a single multi-file check.
$sniffs = self::$phpcs->getTokenSniffs();
if (empty($sniffs['file']) === true) {
$multiFileSniff = true;
break;
}
$files = self::$phpcs->getFiles();
$file = array_pop($files);
$failures = $this->generateFailureMessages($file, $testFile);
$failureMessages = array_merge($failureMessages, $failures);
}
//end foreach
if ($multiFileSniff === true) {
try {
self::$phpcs->process($testFiles, $standardName, array($sniffClass));
} catch (Exception $e) {
$this->fail('An unexpected exception has been caught: ' . $e->getMessage());
}
$files = self::$phpcs->getFiles();
foreach ($files as $file) {
$failures = $this->generateFailureMessages($file);
$failureMessages = array_merge($failureMessages, $failures);
}
}
if (empty($failureMessages) === false) {
$this->fail(implode(PHP_EOL, $failureMessages));
}
}
示例2: refreshTokenListeners
/**
* Rebuilds the list of listeners to ensure their state is cleared.
*
* @return void
*/
public function refreshTokenListeners()
{
$this->phpcs->populateTokenListeners();
$this->_listeners = $this->phpcs->getTokenSniffs();
}
示例3: execute
/**
* @see sfTask
*/
protected function execute($arguments = array(), $options = array())
{
// Call realpath() before constructing PHP_CodeSniffer because the
// constructor changes our current working directory. An argument handler
// which sanitized user input would be nice:
// http://trac.symfony-project.com/ticket/3486
$arguments['path'] = realpath($arguments['path']);
$phpcs = new PHP_CodeSniffer();
$finder = new SvnFinder();
foreach ($finder->in($arguments['path']) as $path) {
$config = $this->getConfigForPath($path);
if (!isset($config['code']['standard']) && !isset($config['preamble']) && !isset($config['props'])) {
continue;
}
// HACK: It is not easy to modify a file's token listeners after it is
// constructed, so construct a populated file if the code standard is
// defined, and an empty file otherwise
if (isset($config['code']['standard'])) {
// HACK: PHP_CodeSniffer_File now expects an array of
// PHP_CodeSniffer_Sniff instances, which
// PHP_CodeSniffer::getTokenListeners() does not return
$processPhpcs = new PHP_CodeSniffer();
$processPhpcs->process(array(), $config['code']['standard']);
$listeners = $processPhpcs->getTokenSniffs();
$phpcsFile = new PHP_CodeSniffer_File($path, $listeners['file'], $phpcs->allowedFileExtensions);
$phpcsFile->start();
} else {
$phpcsFile = new PHP_CodeSniffer_File($path, array(), $phpcs->allowedFileExtensions);
}
if (isset($config['preamble'])) {
}
if (isset($config['props'])) {
$props = $this->getPropsFromPath($path);
foreach ($props + $config['props'] as $key => $value) {
if (isset($props[$key]) && !isset($config['props'][$key])) {
$phpcsFile->addError('SVN property "' . $key . '" = "' . $props[$key] . '" found but not expected', 0);
continue;
}
if (!isset($props[$key]) && isset($config['props'][$key])) {
$phpcsFile->addError('SVN property "' . $key . '" = "' . $config['props'][$key] . '" expected but not found', 0);
continue;
}
if ($props[$key] != $config['props'][$key]) {
$phpcsFile->addError('SVN property "' . $key . '" = "' . $props[$key] . '" expected to match "' . $config['props'][$key] . '"', 0);
}
}
}
$phpcs->addFile($phpcsFile);
}
$phpcs->printErrorReport();
}