うまくいけば、ここの誰かがこれについて1つか2つ知っています。
短い質問
PHP 7.0.2にpearを介してインストールされたコマンドラインでphpdocを使用してエラーが発生しています。エラーは次のとおりです:
#> phpdoc
PHP Fatal error: Uncaught Doctrine\Common\Annotations\AnnotationException:
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を有効または無効にすることで、変更がロードされていることを確認できます。
そうは言っても、もし私がopcache.load_comments=1
.iniファイルで、なぜまだこのエラーが発生するのですか?
ありがとう!
PHPDocumentorのPHARバージョンを使用しているときに同じ問題が発生しました。 PHARには、廃止されたDoctrine注釈のバージョンが含まれています。
古いバージョンの注釈はopcache.load_comments
のphp.ini
設定を参照しており、PHP 7:
これはアノテーションの上流で修正されました:
現時点では、composerバージョンのPHPDocumentorをcomposer require --dev phpdocumentor/phpdocumentor
を実行して使用すると、問題が解決しました。
composerを使用して、ベンダーディレクトリのコンテンツを手動で切り替えることなく使用することもできます。
composer require doctrine/annotations
doctrine/annotationsの最新バージョンを入手する(少なくとも1.2.5で問題が解決します)
phpDocumentor 2.8.5はUbuntu 16.04のデフォルトバージョンです。ただし、php7のサポートは2.9まで追加されませんでした。コマンドラインで次のように使用することで機能しました。
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
PhpDocumentorをpearからインストールした場合は、以下を使用して削除します。
Sudo pear uninstall phpdoc/phpDocumentor
リンクを提供してくれたdeepdivedylanに感謝します。しかしながら、 composer require --dev phpdocumentor/phpdocumentor
は私の問題を解決しませんでした。しかし、リンクを読んでダウンロード doctrineアノテーションパッチ1.2.5 はうまくいきました。アーカイブをダウンロードして、vendor/doctrine/annotationsフォルダーをそのコンテンツで置き換えます。
Pharの最新バージョンは github release からダウンロードできます。
ウェブサイトからのリンクは、それより古いバージョンです。