本文整理汇总了PHP中PHP_CodeSniffer_File::addErrorOnLine方法的典型用法代码示例。如果您正苦于以下问题:PHP PHP_CodeSniffer_File::addErrorOnLine方法的具体用法?PHP PHP_CodeSniffer_File::addErrorOnLine怎么用?PHP PHP_CodeSniffer_File::addErrorOnLine使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PHP_CodeSniffer_File
的用法示例。
在下文中一共展示了PHP_CodeSniffer_File::addErrorOnLine方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: process
/**
* Processes this test, when one of its tokens is encountered.
*
* @param PHP_CodeSniffer_File $phpcsFile The file being scanned.
* @param int $stackPtr The position of the current token in
* the stack passed in $tokens.
*
* @return void
*/
public function process(PHP_CodeSniffer_File $phpcsFile, $stackPtr)
{
if ($this->_phpPath === null) {
$this->_phpPath = PHP_CodeSniffer::getConfigData('php_path');
if ($this->_phpPath === null) {
// PHP_BINARY is available in PHP 5.4+.
if (defined('PHP_BINARY') === true) {
$this->_phpPath = PHP_BINARY;
} else {
return;
}
}
}
$fileName = $phpcsFile->getFilename();
$cmd = $this->_phpPath . " -l \"{$fileName}\" 2>&1";
$output = shell_exec($cmd);
$matches = array();
if (preg_match('/^.*error:(.*) in .* on line ([0-9]+)/', trim($output), $matches) === 1) {
$error = trim($matches[1]);
$line = (int) $matches[2];
$phpcsFile->addErrorOnLine("PHP syntax error: {$error}", $line, 'PHPSyntax');
}
// Ignore the rest of the file.
return $phpcsFile->numTokens + 1;
}
示例2: process
/**
* Processes this test, when one of its tokens is encountered.
*
* @param PHP_CodeSniffer_File $phpcsFile The file being scanned.
* @param int $stackPtr The position of the current token in
* the stack passed in $tokens.
*
* @return void
*/
public function process(PHP_CodeSniffer_File $phpcsFile, $stackPtr)
{
$phpPath = PHP_CodeSniffer::getConfigData('php_path');
if ($phpPath === null) {
return;
}
$fileName = $phpcsFile->getFilename();
$cmd = "{$phpPath} -l \"{$fileName}\" 2>&1";
$output = shell_exec($cmd);
$matches = array();
if (preg_match('/^.*error:(.*) in .* on line ([0-9]+)/', $output, $matches) === 1) {
$error = trim($matches[1]);
$line = (int) $matches[2];
$phpcsFile->addErrorOnLine("PHP syntax error: {$error}", $line, 'PHPSyntax');
}
// Ignore the rest of the file.
return $phpcsFile->numTokens + 1;
}
示例3: process
/**
* Processes the tokens that this sniff is interested in.
*
* @param PHP_CodeSniffer_File $phpcsFile The file where the token was found.
* @param int $stackPtr The position in the stack where
* the token was found.
*
* @return void
* @throws PHP_CodeSniffer_Exception If jslint.js could not be run
*/
public function process(PHP_CodeSniffer_File $phpcsFile, $stackPtr)
{
$fileName = $phpcsFile->getFilename();
$lintPath = PHP_CodeSniffer::getConfigData('gjslint_path');
if ($lintPath === null) {
return;
}
$cmd = "{$lintPath} --nosummary --notime --unix_mode \"{$fileName}\"";
$msg = exec($cmd, $output, $retval);
if (is_array($output) === false) {
return;
}
foreach ($output as $finding) {
$matches = array();
$numMatches = preg_match('/^(.*):([0-9]+):\\(.*?([0-9]+)\\)(.*)$/', $finding, $matches);
if ($numMatches === 0) {
continue;
}
// Skip error codes we are ignoring.
$code = $matches[3];
if (in_array($code, $this->ignoreCodes) === true) {
continue;
}
$line = (int) $matches[2];
$error = trim($matches[4]);
$message = 'gjslint says: (%s) %s';
$data = array($code, $error);
if (in_array($code, $this->errorCodes) === true) {
$phpcsFile->addErrorOnLine($message, $line, 'ExternalToolError', $data);
} else {
$phpcsFile->addWarningOnLine($message, $line, 'ExternalTool', $data);
}
}
//end foreach
// Ignore the rest of the file.
return $phpcsFile->numTokens + 1;
}
示例4: addFixableMissingApiAnnotation
/**
* @param \PHP_CodeSniffer_File $phpCsFile
* @param int $stackPointer
*
* @return void
*/
protected function addFixableMissingApiAnnotation(\PHP_CodeSniffer_File $phpCsFile, $stackPointer)
{
$fix = $phpCsFile->addFixableError('@api annotation is missing', $stackPointer);
if ($fix) {
$docCommentOpenerPosition = $phpCsFile->findPrevious(T_DOC_COMMENT_OPEN_TAG, $stackPointer);
$firstDocCommentTagPosition = $phpCsFile->findNext(T_DOC_COMMENT_TAG, $docCommentOpenerPosition);
if (!$firstDocCommentTagPosition) {
$phpCsFile->addErrorOnLine('Cannot fix missing @api tag', $stackPointer);
return;
}
$startPosition = $firstDocCommentTagPosition - 2;
$phpCsFile->fixer->beginChangeset();
$phpCsFile->fixer->addContent($startPosition, ' @api');
$phpCsFile->fixer->addNewline($startPosition);
$phpCsFile->fixer->addContent($startPosition, ' * ');
$phpCsFile->fixer->addNewline($startPosition);
$phpCsFile->fixer->addContent($startPosition, ' * ');
$phpCsFile->fixer->endChangeset();
}
}