J'espère que quelqu'un ici sait quelque chose ou deux à ce sujet.
Question courte
Je rencontre une erreur en utilisant phpdoc sur la ligne de commande, installée via pear sur PHP 7.0.2. L'erreur est:
#> 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
Comment puis-je corriger cette erreur?
Détails
Opcache est activé et opcache.load_comments=1
est dans mon fichier opcache.ini, vérifié à l'aide des commandes: php -i | grep "Opcode"
et php -i | grep "opcache"
, respectivement. Dans ce fichier .ini, je peux vérifier que les modifications sont chargées en cochant les options Activer et Désactiver Opcache via ce fichier.
Cela dit, si j'ai opcache.load_comments=1
dans mon fichier .ini, pourquoi ai-je toujours cette erreur?
Merci!
J'ai rencontré le même problème lors de l'utilisation de la version PHAR de PHPDocumentor. Le PHAR comprend une version obsolète de Doctrine Annotations.
L'ancienne version d'Annotations fait référence au paramètre opcache.load_comments
dans php.ini
, qui n'existe pas dans PHP 7:
Cela a été corrigé en amont dans les annotations:
Pour l'instant, utiliser la version de composition de PHPDocumentor en exécutant composer require --dev phpdocumentor/phpdocumentor
a résolu le problème pour moi.
Vous pouvez également utiliser composer sans changer manuellement le contenu du répertoire des fournisseurs. Il suffit d'utiliser:
composer require doctrine/annotations
avoir la dernière version de doctrine/annotations (au moins 1.2.5 résout le problème)
phpDocumentor 2.8.5 est la version par défaut avec Ubuntu 16.04. Cependant, le support php7 n'a pas été ajouté avant la version 2.9. Je l'ai obtenu en utilisant les éléments suivants sur la ligne de commande:
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
Si vous avez installé phpDocumentor à partir de pear, utilisez ce qui suit pour le supprimer:
Sudo pear uninstall phpdoc/phpDocumentor
Merci deepdivedylan pour les liens. Cependant, composer require --dev phpdocumentor/phpdocumentor
n'a pas résolu mon problème. Mais lire les liens et télécharger doctrine annotations patch 1.2.5 a bien fonctionné. Il suffit de télécharger l’archive et de remplacer le dossier vendor/doctrine/annotations par son contenu.
Vous pouvez télécharger la dernière version de phar à partir de github releases .
Le lien du site Web est une ancienne version de celui-ci.