我使用php Depend和PMD时遇到问题。当我使用时:
pdepend --summary-xml=/home/<mydirectory>/.sonar/pdepend.xml --suffix=php,php3,php4,php5,phtml,inc /home/<mydirectory>
这是结果:
...解析
.................................................. 1260
........................ PHP Catchable致命错误:传递给PHP_Depend_Parser_UnexpectedTokenException :: __ construct()的参数1必须是PHP_Depend_Token的一个实例,给定整数,调用位于第5444行的/usr/share/php/PHP/Depend/Parser.php中,并在第70行的/usr/share/php/PHP/Depend/Parser/UnexpectedTokenException.php中定义 PHP堆栈跟踪: PHP 1. {main}()/ usr / bin / pdepend:0 PHP 2. PHP_Depend_TextUI_Command :: main()/ usr / bin / pdepend:78 PHP 3. PHP_Depend_TextUI_Command-&gt; run()/usr/share/php/PHP/Depend/TextUI/Command.php:679 PHP 4. PHP_Depend_TextUI_Runner-&gt; run()/usr/share/php/PHP/Depend/TextUI/Command.php:206 PHP 5. PHP_Depend-&gt; analyze()/usr/share/php/PHP/Depend/TextUI/Runner.php:331 PHP 6. PHP_Depend-&gt; performParseProcess()/ usr / share / php / PHP / Depend.php:30 PHP 7. PHP_Depend_Parser-&gt; parse()/ usr / share / php / PHP / Depend.php:560 PHP 8. PHP_Depend_Parser-&gt; parseOptionalStatement()/usr/share/php/PHP/Depend/Parser.php:370 PHP 9. PHP_Depend_Parser-&gt; parseIfStatement()/usr/share/php/PHP/Depend/Parser.php:5474 PHP 10. PHP_Depend_Parser-&gt; parseStatementBody()/ usr / share / php / PHP / Depend /Parser.php:3195 PHP 11. PHP_Depend_Parser-&gt; parseStatement()/usr/share/php/PHP/Depend/Parser.php:2320 PHP 12. PHP_Depend_Parser_UnexpectedTokenException-&gt; __ construct()/usr/share/php/PHP/Depend/Parser.php:5444
同样的情况发生在:
phpmd /home/<mydirectory> xml /home/<mydirectory>/Sonar_Way_php.xml
PHP Catchable致命错误:传递给PHP_Depend_Parser_UnexpectedTokenException :: __ construct()的参数1必须是PHP_Depend_Token的实例,给定整数,在5444行的/usr/share/php/PHP/Depend/Parser.php中调用并在第70行的/usr/share/php/PHP/Depend/Parser/UnexpectedTokenException.php PHP堆栈跟踪:
PHP 1. {main}() /usr/bin/phpmd:0
PHP 2. PHP_PMD_TextUI_Command::main() /usr/bin/phpmd:48
PHP 3. PHP_PMD_TextUI_Command->run() /usr/share/php/PHP/PMD/TextUI/Command.php:151
PHP 4. PHP_PMD->processFiles() /usr/share/php/PHP/PMD/TextUI/Command.php:129
PHP 5. PHP_PMD_Parser->parse() /usr/share/php/PHP/PMD.php:203
PHP 6. PHP_Depend->analyze() /usr/share/php/PHP/PMD/Parser.php:128
PHP 7. PHP_Depend->performParseProcess() /usr/share/php/PHP/Depend.php:306
PHP 8. PHP_Depend_Parser->parse() /usr/share/php/PHP/Depend.php:560
PHP 9. PHP_Depend_Parser->parseOptionalStatement() /usr/share/php/PHP/Depend/Parser.php:370
PHP 10. PHP_Depend_Parser->parseIfStatement() /usr/share/php/PHP/Depend/Parser.php:5474
PHP 11. PHP_Depend_Parser->parseStatementBody() /usr/share/php/PHP/Depend/Parser.php:3195
PHP 12. PHP_Depend_Parser->parseStatement() /usr/share/php/PHP/Depend/Parser.php:2320
PHP 13. PHP_Depend_Parser_UnexpectedTokenException->__construct() /usr/share/php/PHP/Depend/Parser.php:5444
¿任何消化?感谢。
答案 0 :(得分:0)
这是pdepend和pmd的错误。在/usr/share/php/PHP/Depend/parser.php我改变了:
private function parseStatement()
{
if (null === ($stmt = $this->parseOptionalStatement())) {
throw new PHP_Depend_Parser_UnexpectedTokenException(
$this->tokenizer->next(),
$this->sourceFile->getFileName()
);
}
return $stmt;
}
为此:
private function parseStatement()
{
if (null === ($stmt = $this->parseOptionalStatement())) {
throw new PHP_Depend_Parser_UnexpectedTokenException(
new PHP_Depend_Token,
$this->sourceFile->getFileName()
);
}
return $stmt;
}
我只获得警告并继续处理:
PHP警告:缺少PHP_Depend_Token :: __ construct()的参数1,在5442行的/usr/share/php/PHP/Depend/Parser.php中调用,并在/ usr / share / php / PHP / Depend /中定义第121行的Token.php
我们可以等下一次升级;)