Надеюсь, кто-то здесь знает что-то или об этом.
Короткий вопрос
Я запускаю ошибку, используя phpdoc в командной строке, установленную через грушу на 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 "Opcode"
и php -i | grep "opcache"
php -i | grep "opcache"
соответственно. Внутри этого .ini-файла я могу проверить, что изменения загружены, включив и отключив opcache через этот файл.
С учетом сказанного, если у меня есть opcache.load_comments=1
в моем .ini-файле, почему я все еще получаю эту ошибку?
Благодаря!
Я столкнулся с такой же проблемой при использовании PHP-версии PHPDocumentor. PHAR включает устаревшую версию аннотаций доктрины.
Более старая версия аннотаций ссылается на параметр opcache.load_comments
в php.ini
, который не существует в PHP 7:
Это было исправлено в аннотациях:
На данный момент, используя композиторную версию PHPDocumentor, выполняя composer require --dev phpdocumentor/phpdocumentor
решить проблему для меня.
Вы также можете использовать композитор без ручного переключения содержимого каталога поставщиков. Просто используйте:
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 из груши, используйте следующую команду, чтобы удалить его:
sudo pear uninstall phpdoc/phpDocumentor
Спасибо deepdivedylan за ссылки. Однако для composer require --dev phpdocumentor/phpdocumentor
не решила мою проблему. Но чтение ссылок и загрузка аннотаций доктрины патч 1.2.5 работал отлично. Просто загрузите архив и замените папку vendor / doctrine / annotations своим содержимым.
Вы можете загрузить последнюю версию phar из выпусков github .
Ссылка с веб-сайта на более старую версию.