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.

Um evento pode ter diversos manipula<strong>do</strong>res. Quan<strong>do</strong> o evento é dispara<strong>do</strong>, os<br />

manipula<strong>do</strong>res serão executa<strong>do</strong>s, um a um, na ordem em que foram atribuí<strong>do</strong>s ao evento.<br />

Um manipula<strong>do</strong>r pode impedir que os manipula<strong>do</strong>res restantes sejam executa<strong>do</strong>s, para<br />

isso altere o valor de $event->handled para true.<br />

Comportamento de um Componente<br />

A partir da versão 1.0.2, os componentes passaram a suportar mixin, e, portanto,<br />

ganharam a possibilidade de receber um ou mais comportamentos. Um comportamento<br />

(behavior) é um objeto cujo os méto<strong>do</strong>s podem ser "herda<strong>do</strong>s" pela classe que o anexou,<br />

com a finalidade de coleta de funcionalidades em vez de especialização (por exemplo, a<br />

herança normal de classes). Um componente pode receber diversos comportamentos e,<br />

assim, utilizar a "herança múltipla".<br />

Classes de comportamento devem implementar a interface [IBehavior]. A maioria <strong>do</strong>s<br />

comportamentos podem utilizar a classe CBehavior como base, estenden<strong>do</strong>-a. Se um<br />

comportamento precisar ser atribuí<strong>do</strong> a um modelo, ele deve estender as classes<br />

CModelBehavior ou CActiveRecordBehavior, que implementam características específicas<br />

para modelos.<br />

Para utilizar um comportamento, primeiro ele deve ser atribuí<strong>do</strong> a um componente,<br />

utilizan<strong>do</strong> o méto<strong>do</strong> [attach()|IBehavior::attach]. Em seguida, podemos executar o<br />

comportamento através <strong>do</strong> componente, da seguinte maneira:<br />

// $nome identifica únicamente o comportamento dento <strong>do</strong> componente<br />

$componente->attachBehavior($nome, $comportamento);<br />

// test() é um méto<strong>do</strong> de $comportamento<br />

$componente->test();<br />

Um comportamento atribuí<strong>do</strong> pode ser acessa<strong>do</strong> normalmente, como uma propriedade <strong>do</strong><br />

componente. Por exemplo, se um comportamento denomina<strong>do</strong> tree é atribuí<strong>do</strong> a um<br />

componente, podemos obter obter uma referência dele da seguinte maneira:<br />

$behavior=$component->tree;<br />

// equivalente a:<br />

// $behavior=$component->asa('tree');<br />

Podemos desabilitar um comportamento temporariamente, para que seus méto<strong>do</strong>s não<br />

estejam disponíveis através <strong>do</strong> componente:

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

Saved successfully!

Ooh no, something went wrong!