Symfony 4: как отключить кеширование классов и всего такого в var/cache?

В Symfony 4 для отключения кеширования классов и других кэшей, которые хранятся в папке var/cache, необходимо внести некоторые изменения в файл config/services.yaml.

1. В первую очередь, откройте файл config/services.yaml вашего проекта.

2. Найдите секцию parameters и добавьте следующие строки:

parameters:
    # ...
    cache.class_cache: cache.adapter.array
    cache.system_cache: cache.adapter.array
    cache.twig_cache: cache.adapter.array

Эти параметры переопределяют классы внутреннего кэша Symfony для использования адаптера массива, который не выполняет фактического кэширования.

3. Далее, найдите секцию services и добавьте следующий код:

services:
    # ...
    cache.class_cache:
        class: SymfonyComponentCacheAdapterArrayAdapter
        decorate: false

    cache.system_cache:
        class: SymfonyComponentCacheAdapterArrayAdapter
        decorate: false

    cache.twig_cache:
        class: SymfonyComponentCacheAdapterArrayAdapter
        decorate: false

4. После этого сохраните и закройте файл services.yaml. Теперь Symfony будет использовать адаптер массива для классового кэша, системного кэша и кэша Twig.

5. Наконец, удалите содержимое папки var/cache в вашем проекте, чтобы сбросить все предыдущие кэшированные данные.

После выполнения этих шагов кэширование классов и других кэшей будет отключено, и Symfony будет загружать и перекомпилировать классы и другие ресурсы при каждом запросе. Это может быть полезно во время разработки, когда вы вносите изменения в код и хотите видеть их немедленно без необходимости очистки кэша вручную. Однако учтите, что это может снизить производительность вашего приложения в продакшн-среде, где кэширование важно для оптимизации загрузки и работы приложения.