doctrine / annotations

Annotations Docblock Parser
https://www.doctrine-project.org/projects/annotations.html
MIT License
6.74k stars 235 forks source link

DCOM-243: 'Zend OPcache' PHP extension might prevent AnnotationReader from getting entity class comments #85

Open guilhermeblanco opened 8 years ago

guilhermeblanco commented 8 years ago

From @doctrinebot on May 22, 2014 8:0

Jira issue originally created by user VictorSmirnov:

If module Zend OPcache is installed and configured not to save comments the AnnotationReader class fails to parse data for entities.

Output from php -m contains line Zend OPcache. The module is configured with the following parameter opcache.save_comments=0.

I would expect the AnnotationReader constructor to throw an exception. But it does not check if the module is loaded.

In addition to the check for opcache module

        if (extension*loaded('opcache') && ini_get('opcache.save*comments') == 0) {
            throw AnnotationException::optimizerPlusSaveComments();
        }

we might have a new check for the Zend OPcache module

        if (extension*loaded('Zend OPcache') && ini_get('opcache.save*comments') == 0) {
            throw AnnotationException::optimizerPlusSaveComments();
        }

Copied from original issue: doctrine/common#551

guilhermeblanco commented 8 years ago

From @doctrinebot on May 22, 2014 9:13

Comment created by VictorSmirnov:

Please check the pull request - https://github.com/doctrine/annotations/pull/35 I think this might be a simple fix.

It took us a while here to discover the issue on production. I think the setup might be quite common on production servers. Adding the check should save people time on troubleshooting.

Warm regards, Victor