Кэширование в Yii2
Кэширование переменных с использованием расширения APC
Для начала настраиваем компонент в конфигурационном файле нашего приложения Yii2 следующим образом:
return [
// ...
'components' => [
'cache' => [
'class' => 'yii\caching\ApcCache',
],
],
];
После этого вы можете использовать кэширование данных следующим образом:
$key = 'cacheKey'
$data = Yii::$app->cache->get($key);
if ($data === false) {
// $data не найдена в кэше, вычисляем заново
// сохраняем $data в кэш для того, чтобы можно было в дальнейшем из кэша получить без повторных вычислений
$cache->set($key, $data);
}
Иногда может возникнуть следующая ошибка: Call to undefined function yii\caching\apc_fetch(), которая означает, что имеются проблемы с использованием расширения APC. В таком случае необходимо обратиться к руководству (http://php.net/manual/ru/book.apc.php) для решения данной проблемы.
Если же кэш не работает (при поиске переменной $data в кэше всегда возвращает false), тогда проверьте apc.shm_size в конфигурационном файле PHP php.ini. Вероятнее всего указано маленькое значение в этом параметре.
HTTP-кэширование для assets и других статичных ресурсов
Скорость загрузки страницы может быть медленной, если не указано время жизни в кэше файлов с такими расширениями, как .js, .css и др. Если использовать инструмент PageSpeed Insights в Google Chrome для проверки скорости загрузки страниц, то он будет рекомендовать использовать кэш браузера для увеличения скорости загрузки страниц. И в таком случае это легко настраивается добавлением следующего кода в конфигурационном файле приложения Yii2:
return [
// ...
'components' => [
'assetManager' => [
'appendTimestamp' => true,
],
],
];