API Platform version(s) affected: 2.7.0, 2.7.1
(The issue comes from the deprecation handling, did not exist in 2.6, v3 could not test yet..)
Description
After upgrading to 2.7 (v2.7.0, v2.7.1) api-platform crashes on production where opcache.prelaod is enabled. On v2.6.8 worked fine.
Warning: Cannot declare interface ApiPlatform\Core\Api\FilterInterface, because the name is already in use in /var/www/vendor/api-platform/core/src/deprecation.php on line 15
Warning: Cannot declare interface ApiPlatform\Core\Api\ResourceClassResolverInterface, because the name is already in use in /var/www/vendor/api-platform/core/src/deprecation.php on line 16
ErrorException:
Warning: Cannot declare class ApiPlatform\Core\EventListener\ExceptionListener, because the name is already in use
at /var/www/vendor/api-platform/core/src/Symfony/EventListener/ExceptionListener.php:58
at include_once('/var/www/vendor/api-platform/core/src/Symfony/EventListener/ExceptionListener.php')
(/var/www/var/cache/dev/ContainerQBmvKM9/getApiPlatform_Listener_ExceptionService.php:20)
at ContainerQBmvKM9\getApiPlatform_Listener_ExceptionService::do(object(App_KernelDevDebugContainer), true)
(/var/www/var/cache/dev/ContainerQBmvKM9/App_KernelDevDebugContainer.php:630)
at ContainerQBmvKM9\App_KernelDevDebugContainer->load('getApiPlatform_Listener_ExceptionService.php')
(/var/www/var/cache/dev/ContainerQBmvKM9/App_KernelDevDebugContainer.php:923)
at ContainerQBmvKM9\App_KernelDevDebugContainer->ContainerQBmvKM9{closure}()
(/var/www/vendor/symfony/event-dispatcher/EventDispatcher.php:164)
at Symfony\Component\EventDispatcher\EventDispatcher->removeListener('kernel.exception', object(Closure))
(/var/www/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php:287)
at Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher->preProcess('kernel.exception')
(/var/www/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php:147)
at Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher->dispatch(object(ExceptionEvent), 'kernel.exception')
(/var/www/vendor/symfony/http-kernel/HttpKernel.php:213)
at Symfony\Component\HttpKernel\HttpKernel->handleThrowable(object(ErrorException), object(Request), 1)
(/var/www/vendor/symfony/http-kernel/HttpKernel.php:109)
at Symfony\Component\HttpKernel\HttpKernel->terminateWithException(object(ErrorException), object(Request))
(/var/www/vendor/symfony/http-kernel/EventListener/DebugHandlersListener.php:125)
at Symfony\Component\HttpKernel\EventListener\DebugHandlersListener::Symfony\Component\HttpKernel\EventListener{closure}(object(ErrorException))
(/var/www/vendor/symfony/error-handler/ErrorHandler.php:540)
at Symfony\Component\ErrorHandler\ErrorHandler->handleException(object(ErrorException))
How to reproduce
- Upgrade to v2.7.*
- Make sure opcache.preload is enabled. (I use the Symfony's default preload script);
- opcache.preload_user=www-data
- opcache.preload=/var/www/config/preload.php
- Open /api or any api-platform endpoint
API Platform version(s) affected: 2.7.0, 2.7.1
(The issue comes from the deprecation handling, did not exist in 2.6, v3 could not test yet..)
Description
After upgrading to 2.7 (v2.7.0, v2.7.1) api-platform crashes on production where opcache.prelaod is enabled. On v2.6.8 worked fine.
Warning: Cannot declare interface ApiPlatform\Core\Api\FilterInterface, because the name is already in use in /var/www/vendor/api-platform/core/src/deprecation.php on line 15
Warning: Cannot declare interface ApiPlatform\Core\Api\ResourceClassResolverInterface, because the name is already in use in /var/www/vendor/api-platform/core/src/deprecation.php on line 16
ErrorException:
Warning: Cannot declare class ApiPlatform\Core\EventListener\ExceptionListener, because the name is already in use
at /var/www/vendor/api-platform/core/src/Symfony/EventListener/ExceptionListener.php:58
at include_once('/var/www/vendor/api-platform/core/src/Symfony/EventListener/ExceptionListener.php')
(/var/www/var/cache/dev/ContainerQBmvKM9/getApiPlatform_Listener_ExceptionService.php:20)
at ContainerQBmvKM9\getApiPlatform_Listener_ExceptionService::do(object(App_KernelDevDebugContainer), true)
(/var/www/var/cache/dev/ContainerQBmvKM9/App_KernelDevDebugContainer.php:630)
at ContainerQBmvKM9\App_KernelDevDebugContainer->load('getApiPlatform_Listener_ExceptionService.php')
(/var/www/var/cache/dev/ContainerQBmvKM9/App_KernelDevDebugContainer.php:923)
at ContainerQBmvKM9\App_KernelDevDebugContainer->ContainerQBmvKM9{closure}()
(/var/www/vendor/symfony/event-dispatcher/EventDispatcher.php:164)
at Symfony\Component\EventDispatcher\EventDispatcher->removeListener('kernel.exception', object(Closure))
(/var/www/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php:287)
at Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher->preProcess('kernel.exception')
(/var/www/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php:147)
at Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher->dispatch(object(ExceptionEvent), 'kernel.exception')
(/var/www/vendor/symfony/http-kernel/HttpKernel.php:213)
at Symfony\Component\HttpKernel\HttpKernel->handleThrowable(object(ErrorException), object(Request), 1)
(/var/www/vendor/symfony/http-kernel/HttpKernel.php:109)
at Symfony\Component\HttpKernel\HttpKernel->terminateWithException(object(ErrorException), object(Request))
(/var/www/vendor/symfony/http-kernel/EventListener/DebugHandlersListener.php:125)
at Symfony\Component\HttpKernel\EventListener\DebugHandlersListener::Symfony\Component\HttpKernel\EventListener{closure}(object(ErrorException))
(/var/www/vendor/symfony/error-handler/ErrorHandler.php:540)
at Symfony\Component\ErrorHandler\ErrorHandler->handleException(object(ErrorException))
How to reproduce