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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

No código acima, se o méto<strong>do</strong> beginCache() retornar false, o conteú<strong>do</strong> já armazena<strong>do</strong> no<br />

cache será exibi<strong>do</strong>, caso contrário, o conteú<strong>do</strong> dentro <strong>do</strong> if será executa<strong>do</strong> e, então,<br />

armazena<strong>do</strong> quan<strong>do</strong> o méto<strong>do</strong> endCache() for executa<strong>do</strong>. Na realidade, os méto<strong>do</strong>s<br />

beginCache() e endCache() encapsulam os méto<strong>do</strong>s de mesmo nome existentes no<br />

widget COutputCache. Sen<strong>do</strong> assim, as opções de caching podem ser os valores iniciais<br />

para qualquer uma das propriedades de COutputCache.<br />

Duração<br />

Provavelmente a opção mais utilizada seja a duration, que especifica por quanto tempo o<br />

conteú<strong>do</strong> deve ser manti<strong>do</strong> váli<strong>do</strong> no cache. Seu funcionamento é similar ao parâmetro de<br />

tempo de expiração <strong>do</strong> méto<strong>do</strong> CCache::set(). O código a seguir armazena em cache o<br />

fragmento por, no máximo, uma hora:<br />

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

<br />

...conteú<strong>do</strong> a ser armazena<strong>do</strong>...<br />

<br />

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

Se não informamos a duração, seu valor padrão será 60, indican<strong>do</strong> que o conteú<strong>do</strong> <strong>do</strong><br />

cache deve ser invalida<strong>do</strong> depois de 60 segun<strong>do</strong>s.<br />

Dependência<br />

Assim com o caching de da<strong>do</strong>s, fragmentos de conteú<strong>do</strong> armazena<strong>do</strong>s em cache também<br />

podem ter dependências. Por exemplo, o conteú<strong>do</strong> de um post pode se exibi<strong>do</strong>, caso ele<br />

tenha si<strong>do</strong> altera<strong>do</strong> ou não.<br />

Pada especificar uma dependência, devemos utilizar a opção dependency, que pode ser<br />

um objeto implementan<strong>do</strong> a interface [ICacheDependency] ou um vetor de configuração<br />

que pode ser utiliza<strong>do</strong> para gerar a dependência. O código a seguir especifica que o<br />

fragmento depende da alteração <strong>do</strong> valor da coluna lastModified:<br />

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

<br />

...conteú<strong>do</strong> a ser armazena<strong>do</strong> no cache...<br />

<br />

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

Variação<br />

O conteú<strong>do</strong> armazena<strong>do</strong> em cache pode sofrer variações de acor<strong>do</strong> com alguns<br />

parâmetros. Por exemplo, o perfil pessoal pode ter aparências diferentes para diferentes

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

Saved successfully!

Ooh no, something went wrong!