Yii2 advanced доступ из backend к frontend кэшу

Php фреймворк Yii2 включает в себя отличный механизм кэширования данных. Так, например, можно кэшировать результаты запросов, что приведет к минимизации обращений к базе данных и, соответственно, к ускорению работы сайта.

При работе с advanced приложением Yii2 доступ к кэшу фронтэнда и бэкэнда немного отличается от доступа к кэшу в basic приложении.

Зачем нужен доступ к кэшу фронтэнда из бэкэнда? Например, Вы кэшируете результат sql запроса, устанавливаете ему время хранения 24 часа, после чего изменяете данные через панель управления бэкэнда. Данные же на fronten будут браться из кэша еще 24, то есть вы не увидите новых данных на фронтэнде. Было бы логично, при изменении данных в backend очищать кэш фронтэнда, в результате чего при на фронтэнде будут актуальные данные.

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

Чтобы получить доступ к кэшу frontend части приложения из backend необходимо:

1. В конфигурационном файле main.php бэкэнда, в разделе 'components' нужно написать:

'cacheFrontend' => [
    'class' => 'yii\caching\FileCache',
    'cachePath' => Yii::getAlias('@frontend') . '/runtime/cache'
],

2. Теперь можно получить доступ к кэшу фронтэнда следующим образом:

Yii::$app->cacheFrontend->delete('manufacturer'); //очищаем кэш с данными о производителях

Итак, в данной заметке мы рассмотрели способ как получить доступ к кэшу фронтэнда из бэкэнда для php фреймворка Yii2.