Возникла такая проблема: у меня есть модель, в которой есть статический метод очистки записей кэша. Я там в цикле очищаю записи кэша для структур разных департаментов. Вот код:
Код: Выделить всё
public static function clearDepartmentsStructureCache()
{
$res = true;
$models = self::getModelsDepartments(); // получаем все модели департаментов
foreach($models as $model){ // пробегаемся по всем департаментам
if (Yii::$app->cache->exists('DepartmentStructure' . $model->id)) // удаляем кэш структуры департамента если он (кэш) имеется
$res = $res && Yii::$app->cache->delete('DepartmentStructure' . $model->id);
}
return $res;
}
Это заметно по времени загрузки страницы, структура большая и когда мы ее формируем заново приходится ждать некоторое время. Т.е. кэш точно очищается.
Код: Выделить всё
DictionaryDepartments::clearDepartmentsStructureCache(); // очитска кэша структур департаментов
echo getCachedStructure($dept, 0); // получаем структуру департамента из кэша или формируем заново (и кэшируем)
Код: Выделить всё
use common\models\dictionaries\DictionaryDepartments;
class DepartmentsController extends Controller
{
public function actionClearStructureCache()
{
DictionaryDepartments::clearDepartmentsStructureCache(); // очитска кэша структур департаментов
}
}