Phpdocumenter致命错误:在非对象上调用成员函数getMethods()?

时间:2014-07-10 09:32:32

标签: php symfony phpdoc

我使用phpdocumentor进行php代码嗅探。这已经运行了很长时间,但突然间,当它试图将分析的项目转换为工件时,我遇到了致命的错误:

Transform analyzed project into artifacts                          .. PHP Fatal error:  Call to a member function getMethods() on a non-object in /usr/share/php/phpDocumentor/src/phpDocumentor/Descriptor/ClassDescriptor.php on line 176
PHP Stack trace:
PHP   1. {main}() /usr/bin/phpdoc:0
PHP   2. phpDocumentor\Application->run() /usr/bin/phpdoc:29
PHP   3. Symfony\Component\Console\Application->run() /usr/share/php/phpDocumentor/src/phpDocumentor/Application.php:425
PHP   4. Symfony\Component\Console\Application->doRun() /usr/share/php/phpDocumentor/vendor/symfony/console/Symfony/Component/Console/Application.php:121
PHP   5. Symfony\Component\Console\Application->doRunCommand() /usr/share/php/phpDocumentor/vendor/symfony/console/Symfony/Component/Console/Application.php:191
PHP   6. Symfony\Component\Console\Command\Command->run() /usr/share/php/phpDocumentor/vendor/symfony/console/Symfony/Component/Console/Application.php:895
PHP   7. phpDocumentor\Command\Project\RunCommand->execute() /usr/share/php/phpDocumentor/vendor/symfony/console/Symfony/Component/Console/Command/Command.php:241
PHP   8. Symfony\Component\Console\Command\Command->run() /usr/share/php/phpDocumentor/src/phpDocumentor/Command/Project/RunCommand.php:269
PHP   9. phpDocumentor\Transformer\Command\Project\TransformCommand->execute() /usr/share/php/phpDocumentor/vendor/symfony/console/Symfony/Component/Console/Command/Command.php:241
etc..
etc..

我检查了ClassDescriptor.php文件中的第176行,其中包含:

175         foreach($this->getUsedTraits() as $trait) {
176             $inheritedMethods = $inheritedMethods->merge(clone $trait->getMethods());
177         }

在这里,我有点卡住了。我不知道为什么在phpdocumentor中会突然出现错误,但我也不知道它可能是什么。

有人知道如何解决这个问题吗?欢迎任何调试技巧!

1 个答案:

答案 0 :(得分:0)

我在2.5.0中遇到了同样的错误,结果我所需要的只是升级。它在2.6.1中得到了解决。

确保在运行新版本之前删除目标phpdoc目录中的所有缓存目录。

(我用sudo peardev upgrade-all btw升级了