Для PHP 7.x может показаться, что Symfony удалил конфигурацию кэша фреймворка (валидации и сериализатора) по умолчанию config_prod.yml
и сохранил кэш ORM, но используя apc
вместо apcu
как они делали ранее. В проекте, работающем на PHP 7.1.12, я обнаружил ту же проблему, что и до этого изменения.
Мне удалось запустить APCU, установив его и изменив конфигурацию Symfony prod, но я был бы склонен поступить так же, как Symfony на этом. Если вы думаете о том, чтобы все еще использовать APCU и сериализацию и кэширование валидатора:
Установите его на сервер, если он не установлен (это будет зависеть от сервера к серверу, но есть другие статьи, объясняющие это):
pecl install apcu && echo "extension=apcu.so" > /usr/local/etc/php/conf.d/apcu.ini
Затем в вашем services.yml
добавьте следующее для настройки кэша валидатора:
services:
doctrine.cache.apcu:
class: Doctrine\Common\Cache\ApcuCache
validator.mapping.cache.doctrine.apcu:
class: Symfony\Component\Validator\Mapping\Cache\DoctrineCache
arguments: ['@doctrine.cache.apcu']
Тогда используйте это в своем config_prod.yml
:
framework:
validation:
cache: validator.mapping.cache.doctrine.apcu
serializer:
cache: doctrine.cache.apcu
doctrine:
orm:
metadata_cache_driver: apcu
query_cache_driver: apcu
result_cache_driver: apcu