Кэширование в 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,
        ],
    ],
];
ТЕГИ:

Вы можете поделиться этой статьей в любой из соцсетей, представленных ниже:


Чтобы добавить свой комментарий, необходимо пройти аутентификацию
Комментарии
Ничего не найдено.