You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
39 lines
1.7 KiB
39 lines
1.7 KiB
10 years ago
|
Cache de Página
|
||
|
============
|
||
|
|
||
|
O Cache de página é responsável por armazenar em cache o conteúdo de uma página inteira no servidor. Mais tarde,
|
||
|
quando a mesma página é requisitada novamente, seu conteúdo será servido do cache em vez de ela ser gerada novamente
|
||
|
do zero.
|
||
|
|
||
|
O Cache de página é implementado pela classe [[yii\filters\PageCache]], um [filtro de actions](structure-filters.md).
|
||
|
Esta pode ser usada da seguinte maneira em uma classe de controller:
|
||
|
|
||
|
```php
|
||
|
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',
|
||
|
],
|
||
|
],
|
||
|
];
|
||
|
}
|
||
|
```
|
||
|
O código acima afirma que o cache de página deve ser usado apenas para a action `index`; o conteúdo da página deve
|
||
|
ser armazenado em cache por, no máximo, 60 segundos e deve variar de acordo com a linguagem atual da aplicação;
|
||
|
e esta página em cache deve ser invalidada se o número total de posts for alterado.
|
||
|
|
||
|
Como vocế pode ver, o cache de página é bastante similar ao [cache de fragmentos](caching-fragment.md). Ambos suportam opções como `duration`, `dependencies`, `variations`, and `enabled`. Sua principal diferença é que o cache de página implementado como um [filtro de actions](structure-filters.md) enquanto que o cache de fragmentos é um [widget](structure-widgets.md).
|
||
|
|
||
|
Você pode usar o [cache de fragmentos](caching-fragment.md) ou [conteúdo dinâmico](caching-fragment.md#dynamic-content)
|
||
|
em conjunto com o cache de página.
|
||
|
|