Caching
Yii supports different caching mechanisms. In this recipe we'll describe how to solve typical caching tasks.
PHP variables caching using APC extension
Configure cache component in Yii application config file:
'cache' => [
'class' => 'yii\caching\ApcCache',
],
After that you can cache data by this way:
$key = 'cacheKey'
$data = Yii::$app->cache->get($key);
if ($data === false) {
// $data is not found in cache, calculate it from scratch
// store $data in cache so that it can be retrieved next time
$cache->set($key, $data);
}
Error Call to undefined function yii\caching\apc_fetch()
means that you have problems with APC extension. Refer PHP APC manual
for the details.
If cache doesn't work ($data is always false
) check apc.shm_size
property in php.ini
. Probably your data size is more than
allowed by this parameter.
HTTP caching for assets and other static resources
If expiration not specified for cacheable resources (.js
, .css
, .etc.) a speed of
page loading process may be very slow. Such tool as PageSpeed Insights for Chrome
determines
expiration not specified
problem as crucial for yii web page performance. It advices you to
Leverage browser caching
. You can do it by adding only one row to your application
asset manager component:
return [
// ...
'components' => [
'assetManager' => [
'appendTimestamp' => true,
],
],
];