phpdoc — PHPDocumentor 2 и PHP 7 с проблемами opcache в Doctrine

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

Спасибо!

13

Решение

Я столкнулся с той же проблемой при использовании PHAR-версии PHPDocumentor. PHAR включает в себя устаревшую версию Doctrine Annotations.

Старая версия аннотаций относится к opcache.load_comments установка в php.ini, которого нет в PHP 7:

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

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

14

Другие решения

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

composer require doctrine/annotations

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

8

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

Спасибо deepdivedylan за ссылки. Тем не мение, composer require --dev phpdocumentor/phpdocumentor не решил мою проблему. Но читая ссылки и скачивая Доктрина аннотации патч 1.2.5 работал нормально. Просто скачайте архив и замените папку vendor / doctrine / annotations ее содержимым.

4

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

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

0
По вопросам рекламы [email protected]