Przejdź do głównej zawartości

Pamięć podręczna stron

Pamięć podręczna stron odnosi się do zapisu zawartości całej strony po stronie serwera. Kiedy zostanie ona ponownie wywołana, zawartość zostanie wyświetlona od razu z pamięci podręcznej zamiast generować ją ponownie od podstaw.

Pamięć podręczna stron jest obsługiwana przez filtr akcji [[yii\filters\PageCache|PageCache]]. Poniżej znajdziesz przykładowy sposób użycia go w klasie kontrolera:

public function behaviors()
{
return [
[
'class' => 'yii\filters\PageCache',
'only' => ['index'],
'duration' => 60,
'variations' => [
\Yii::$app->language,
],
'dependency' => [
'class' => 'yii\caching\DbDependency',
'sql' => 'SELECT COUNT(*) FROM post',
],
],
];
}

W powyższym przykładzie zakładamy użycie pamięci podręcznej tylko dla akcji index - zawartość strony powinna zostać zapisana na maksymalnie 60 sekund i powinna różnić się w zależności od wybranego w aplikacji języka. Dodatkowo, jeśli całkowita liczba postów w bazie danych ulegnie zmianie, zawartość pamięci powinna natychmiast stracić ważność i zostać pobrana ponownie.

Jak widać, pamięć podręczna stron jest bardzo podobna do pamięci podręcznej fragmentów. W obu przypadkach można użyć opcji takich jak duration (czas ważności), dependencies (zależności), variations (warianty) oraz enabled (flaga aktywowania). Główną różnicą w tych dwóch przypadkach jest to, że pamięć podręczna stron jest implemetowana jako filtr akcji, a pamięć podręczna fragmentów jako widżet.

Oczywiście nic nie stoi na przeszkodzie, aby używać pamięci podręcznej fragmentów jak i zawartości dynamicznej w połączeniu z pamięcią podręczną stron.