phpDocumentor 2 и PHP 7 с проблемами opcache в доктрине


Надеюсь, кто-нибудь здесь знает кое-что или 2 об этом.

Короткий Вопрос

Я столкнулся с ошибкой при использовании phpdoc в командной строке, установленной через pear на PHP 7.0.2. Ошибка:

#> 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, почему я все еще получаю эту ошибку?

Спасибо!

Author: Paul Carlton, 2016-01-23

5 answers

Я столкнулся с той же проблемой при использовании PHAR-версии phpDocumentor. PHAR включает устаревшую версию аннотаций доктрины.

Более старая версия аннотаций ссылается на параметр opcache.load_comments в php.ini, которого нет в PHP 7:

Это было исправлено выше по течению в аннотациях:

На данный момент использование композиторской версии phpDocumentor путем выполнения composer require --dev phpdocumentor/phpdocumentor решило проблему для меня.

 14
Author: deepdivedylan, 2017-09-01 12:22:14

Вы также можете использовать composer без ручного переключения содержимого каталога поставщиков. Просто используйте:

composer require doctrine/annotations

Иметь последнюю версию доктрины/аннотаций (по крайней мере, 1.2.5 решает проблему)

 7
Author: Grzegorz Krauze, 2016-04-24 11:37:02

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
 7
Author: Robert Oldham, 2016-09-27 17:24:13

Спасибо deepdivedylan за ссылки. Однако composer require --dev phpdocumentor/phpdocumentor не решило мою проблему. Но чтение ссылок и загрузка аннотаций к доктрине патч 1.2.5 работали нормально. Просто скачайте архив и замените папку поставщика/доктрины/аннотации ее содержимым.

 4
Author: Multis, 2016-03-21 19:35:34

Вы можете загрузить последнюю версию phar из выпусков github .

Ссылка с веб-сайта ведет на его более старую версию.

 0
Author: Hari K T, 2017-02-09 04:46:12