20.11.2014 Views

O Guia Definitivo do Yii 1.1

O Guia Definitivo do Yii 1.1

O Guia Definitivo do Yii 1.1

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

value irá expirar em 30 segun<strong>do</strong>s<br />

// ela também deverá se tornar inválida se o conteú<strong>do</strong> de 'FileName' for<br />

altera<strong>do</strong><br />

<strong>Yii</strong>::app()->cache->set($id, $value, 30, new CFileCacheDependency<br />

('FileName'));<br />

Agora, ao recuperar a variável $value <strong>do</strong> cache, com o méto<strong>do</strong> get(), a dependência será<br />

verificada e, se o arquivo foi altera<strong>do</strong>, retornará um false, indican<strong>do</strong> que a informação<br />

precisa ser re-armazenada.<br />

Abaixo temos um resumo com todas as dependências <strong>do</strong> cache:<br />

• CFileCacheDependency: a dependência é alterada caso a hora de última<br />

modificação <strong>do</strong> arquivo tenha si<strong>do</strong> alterada.<br />

• CDirectoryCacheDependency: a dependência é alterada se qualquer um <strong>do</strong>s<br />

arquivos ou subdiretórios <strong>do</strong> diretório informa<strong>do</strong> sofrer alterações.<br />

• CDbCacheDependency: a dependência é alterada se o resulta<strong>do</strong> da consulta<br />

informada sofre alterações.<br />

• CGlobalStateCacheDependency: a dependência é alterada se o valor <strong>do</strong> esta<strong>do</strong><br />

global informa<strong>do</strong> for altera<strong>do</strong>. Um esta<strong>do</strong> global é uma variável que é persistente<br />

entre múltiplas requisições e sessões de uma aplicação. Ele é defini<strong>do</strong> através <strong>do</strong><br />

méto<strong>do</strong> CApplication::setGlobalState().<br />

• CChainedCacheDependency: a dependência é alterada se qualquer uma das<br />

dependências na cadeia informada sofrer alteração.<br />

• CExpressionDependency: a dependência é alterada se o resulta<strong>do</strong> da expressão<br />

PHP informada for altera<strong>do</strong>. Essa classe está disponível a partir da versão 1.0.4.<br />

Caching de Fragmentos<br />

Caching de fragmentos refere-se ao ato de armazenar em cache apenas um fragmento de<br />

uma página. Por exemplo, se uma página exibe em uma tabela o resumo anual de<br />

vendas, podemos armazenar essa tabela em cache para eliminar o tempo necessário<br />

para gera-la em cada requisição.<br />

Para utilizar o caching de fragmentos, utilizamos os méto<strong>do</strong>s CController::beginCache() e<br />

CController::endCache() na visão de um controle. Esses <strong>do</strong>is méto<strong>do</strong>s marcam,<br />

respectivamente, o início e termino <strong>do</strong> conteú<strong>do</strong> da página que deve ser armazena<strong>do</strong> em<br />

cache. Assim como no caching de da<strong>do</strong>s, precisamos de um ID para identificar o<br />

fragmento armazena<strong>do</strong>.<br />

...outro conteú<strong>do</strong> HTML...<br />

<br />

...conteú<strong>do</strong> que deve ser armazena<strong>do</strong>...<br />

<br />

...outro conteú<strong>do</strong> HTML...

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!