contao / docs

Contao Documentation
https://docs.contao.org
Other
31 stars 150 forks source link

Add `opcache.save_comments` to PHP config #1438

Closed fritzmg closed 2 weeks ago

fritzmg commented 2 weeks ago

I recently encountered a hoster that had opcache.enable = On - but opcache.save_comments = Off. This leads to the following error after updating doctrine/annotations to 1.14.4+ or 2.0.2+.

Doctrine\Common\Annotations\AnnotationException:
You have to enable opcache.save_comments=1 or zend_optimizerplus.save_comments=1.

  at vendor\doctrine\annotations\lib\Doctrine\Common\Annotations\AnnotationException.php:146
  at Doctrine\Common\Annotations\AnnotationException::optimizerPlusSaveComments()
     (vendor\doctrine\annotations\lib\Doctrine\Common\Annotations\AnnotationReader.php:122)
  at Doctrine\Common\Annotations\AnnotationReader->__construct()
     (var\cache\dev\ContainerJx4Cxyh\getAnnotations_ReaderService.php:23)
  at ContainerJx4Cxyh\getAnnotations_ReaderService::do(object(Contao_ManagerBundle_HttpKernel_ContaoKernelDevDebugContainer), true)
     (var\cache\dev\ContainerJx4Cxyh\Contao_ManagerBundle_HttpKernel_ContaoKernelDevDebugContainer.php:747)
  at ContainerJx4Cxyh\Contao_ManagerBundle_HttpKernel_ContaoKernelDevDebugContainer->load('getAnnotations_ReaderService.php')
     (var\cache\dev\ContainerJx4Cxyh\getAnnotations_CachedReaderService.php:23)
  at ContainerJx4Cxyh\getAnnotations_CachedReaderService::do(object(Contao_ManagerBundle_HttpKernel_ContaoKernelDevDebugContainer), true)
     (var\cache\dev\ContainerJx4Cxyh\Contao_ManagerBundle_HttpKernel_ContaoKernelDevDebugContainer.php:747)
  at ContainerJx4Cxyh\Contao_ManagerBundle_HttpKernel_ContaoKernelDevDebugContainer->load('getAnnotations_CachedReaderService.php')
     (var\cache\dev\ContainerJx4Cxyh\getRouting_LoaderService.php:49)
  at ContainerJx4Cxyh\getRouting_LoaderService::do(object(Contao_ManagerBundle_HttpKernel_ContaoKernelDevDebugContainer), true)
     (var\cache\dev\ContainerJx4Cxyh\Contao_ManagerBundle_HttpKernel_ContaoKernelDevDebugContainer.php:747)
  at ContainerJx4Cxyh\Contao_ManagerBundle_HttpKernel_ContaoKernelDevDebugContainer->load('getRouting_LoaderService.php')
     (vendor\symfony\dependency-injection\Container.php:427)
  at Symfony\Component\DependencyInjection\Container->getService('services', 'routing.loader', 'getRouting_LoaderService', true)
     (vendor\symfony\dependency-injection\Argument\ServiceLocator.php:42)
  at Symfony\Component\DependencyInjection\Argument\ServiceLocator->get('routing.loader')
     (vendor\symfony\framework-bundle\Routing\Router.php:68)
  at Symfony\Bundle\FrameworkBundle\Routing\Router->getRouteCollection()
     (vendor\symfony\routing\Router.php:361)
  at Symfony\Component\Routing\Router->getMatcherDumperInstance()
     (vendor\symfony\routing\Router.php:289)
  at Symfony\Component\Routing\Router->Symfony\Component\Routing\{closure}(object(ResourceCheckerConfigCache))
     (vendor\symfony\config\ResourceCheckerConfigCacheFactory.php:39)
  at Symfony\Component\Config\ResourceCheckerConfigCacheFactory->cache('C:\\Users\\fmg\\www\\c413\\var\\cache\\dev/url_matching_routes.php', object(Closure))
     (vendor\symfony\routing\Router.php:287)
  at Symfony\Component\Routing\Router->getMatcher()
     (vendor\symfony\routing\Router.php:251)
  at Symfony\Component\Routing\Router->matchRequest(object(Request))
     (vendor\symfony-cmf\routing\src\ChainRouter.php:188)
  at Symfony\Cmf\Component\Routing\ChainRouter->doMatch('/', object(Request))
     (vendor\symfony-cmf\routing\src\ChainRouter.php:158)
  at Symfony\Cmf\Component\Routing\ChainRouter->matchRequest(object(Request))
     (vendor\symfony\http-kernel\EventListener\RouterListener.php:111)
  at Symfony\Component\HttpKernel\EventListener\RouterListener->onKernelRequest(object(RequestEvent), 'kernel.request', object(TraceableEventDispatcher))
     (vendor\symfony\event-dispatcher\Debug\WrappedListener.php:118)
  at Symfony\Component\EventDispatcher\Debug\WrappedListener->__invoke(object(RequestEvent), 'kernel.request', object(TraceableEventDispatcher))
     (vendor\symfony\event-dispatcher\EventDispatcher.php:230)
  at Symfony\Component\EventDispatcher\EventDispatcher->callListeners(array(object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener)), 'kernel.request', object(RequestEvent))
     (vendor\symfony\event-dispatcher\EventDispatcher.php:59)
  at Symfony\Component\EventDispatcher\EventDispatcher->dispatch(object(RequestEvent), 'kernel.request')
     (vendor\symfony\event-dispatcher\Debug\TraceableEventDispatcher.php:154)
  at Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher->dispatch(object(RequestEvent), 'kernel.request')
     (vendor\symfony\http-kernel\HttpKernel.php:139)
  at Symfony\Component\HttpKernel\HttpKernel->handleRaw(object(Request), 1)
     (vendor\symfony\http-kernel\HttpKernel.php:75)
  at Symfony\Component\HttpKernel\HttpKernel->handle(object(Request), 1, true)
     (vendor\symfony\http-kernel\Kernel.php:202)
  at Symfony\Component\HttpKernel\Kernel->handle(object(Request))
     (public\index.php:44)