希望这里有人对此有所了解。
简短的问题
我在命令行上使用 phpdoc 时遇到错误,该命令行是通过 par 在 PHP 7.0.2 上安装的。 错误是:
#> phpdoc
PHP Fatal error: Uncaught DoctrineCommonAnnotationsAnnotationException:
You have to enable opcache.load_comments=1 or zend_optimizerplus.load_comments=1.
in /usr/local/php5-7.0.2-20160108-102134/lib/php/phpDocumentor/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationException.php:193
如何修复此错误?
详
Opcache 已启用,opcache.load_comments=1
在我的 opcache.ini 文件中,分别使用以下命令进行验证:php -i | grep "Opcode"
和 php -i | grep "opcache"
。 在该.ini文件中,我可以通过选中通过该文件启用和禁用opcache来验证是否已加载更改。
话虽如此,如果我的.ini文件中有opcache.load_comments=1
,为什么我仍然收到此错误?
谢谢!
我在使用PHP版本的PHPDocumentor时遇到了同样的问题。PHAR包括过时的教义注释版本。
旧版本的注解指的是 php.ini
中的opcache.load_comments
设置,这在 PHP 7 中不存在:
- 已删除opcache.load_comments配置指令。
这已在注释的上游修复:
- opcache.load_comments已从 PHP 7 中删除。
现在,通过执行composer require --dev phpdocumentor/phpdocumentor
来使用PHPDocumentor的作曲家版本为我解决了这个问题。
您还可以使用作曲家,而无需手动切换供应商目录内容。只需使用:
composer require doctrine/annotations
拥有最新版本的学说/注释(至少 1.2.5 解决了问题)
phpDocumentor 2.8.5 是 Ubuntu 16.04 的默认版本。但是,直到 2.9 才添加 php7 支持。我通过在命令行上使用以下内容来使其工作:
sudo apt-get install php7.0-mbstring
wget https://github.com/phpDocumentor/phpDocumentor2/releases/download/v2.9.0/phpDocumentor.phar
chmod +x phpDocumentor.phar
sudo mv phpDocumentor.phar /usr/local/bin/phpDocumentor-2.9.phar
sudo ln -s /usr/local/bin/phpDocumentor-2.9.phar /usr/local/bin/phpdoc
如果您从 pear 安装了 phpDocumentor,请使用以下命令将其删除:
sudo pear uninstall phpdoc/phpDocumentor
感谢deepdivedylan的链接。但是,composer require --dev phpdocumentor/phpdocumentor
并没有解决我的问题。但是通读链接并下载教义注释补丁 1.2.5 工作正常。只需下载存档并用其内容替换供应商/原则/注释文件夹。
您可以从 github 版本下载最新版本的 phar 。
从网站的链接是它的旧版本。