Надеюсь, кто-то здесь знает вещь или 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, почему я все еще получаю эту ошибку?
Спасибо!
Я столкнулся с той же проблемой при использовании PHAR-версии PHPDocumentor. PHAR включает в себя устаревшую версию Doctrine Annotations.
Старая версия аннотаций относится к opcache.load_comments
установка в php.ini
, которого нет в PHP 7:
Это было исправлено вверх по течению в аннотациях:
На данный момент, используя версию PHPDocumentor для композитора, выполнив composer require --dev phpdocumentor/phpdocumentor
решил проблему для меня.
Вы также можете использовать composer без ручного переключения содержимого каталога поставщиков. Просто используйте:
composer require 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
не решил мою проблему. Но читая ссылки и скачивая Доктрина аннотации патч 1.2.5 работал нормально. Просто скачайте архив и замените папку vendor / doctrine / annotations ее содержимым.
Вы можете скачать последнюю версию phar с GitHub релизы .
Ссылка с сайта на более старую версию.