webinar
@webinar
Учим yii: https://youtu.be/-WRMlGHLgRg

Как в Yii2 сбросить из админки кеш фронтенда?

В yii есть замечательный метод \Yii::$app->cache->flush(); который сбрасывает кеш.
Но если админка на поддомене, то кеш разный и он чистит кеш админки. Не могу придумать, как заставить его очистить во фронтенде.
  • Вопрос задан
  • 6664 просмотра
Решения вопроса 1
@robote13
Речь ведь о FileCache идет? Правильно?

Ну так надо просто в common/config/main.php указать для компонента cache
'cache' => [
            'class' => 'yii\caching\FileCache',
            'cachePath' => '@backend/runtime/cache'
        ],

Или еще куда. В любую папку вобщем. А иначе по умолчанию для компонента на фронте установится путь '@frontend/runtime/cache', а на бэке соответственно '@backend/....' и при вызовах с разных поддоменов компонент будет лезть по разным каталогам.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
bitver
@bitver
Может есть и лучше пути, но как вариант могу предложить инициализировать инстанс Application фронта, как это реализовано в web/index.php и вызвать у него $app->cache->flush(); В таком случае если у вас что-то изменится в кофигах кэша фронта, то всё равно всё будет работать.

UPD: Чтобы не тянуть всё приложение, можно создать компонент кэша фабрикой yii-шной из конфига фронта
Ответ написан
jacksparrow
@jacksparrow
Дальше посоветуют правильный вариант, а пока, сделайте на фронте контролер, чья обязанность будет сброс кеша и вызывайте его из админки.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы