Yii Framework Forum: O que é umEvent? Pra que serve? Quando usar? - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

O que é umEvent? Pra que serve? Quando usar? Alguém sabe me dizer? Rate Topic: -----

#1 User is offline   Junior - df9 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 416
  • Joined: 24-May 09
  • Location:Brazil

Posted 30 January 2010 - 10:54 AM

Olá, caros,

Alguém poderia, por gentileza, postar uma explicação mais clara sobre o que o guia do Yii quer dizer com os Eventos? O que são? Algum exemplo prático de uso? Ele cita que se os comportamentos forem associados aos eventos, são ainda mais poderosos, mas a explicação sobre eventos, é, como de costume, superficial e feita somente para o Qiang entender.

Uma luz sobre isso seria de grande valia, de repente tem gente (eu, por exemplo) quebrando a cabeça com coisas que poderiam ser resolvidas com os tais Events mais facilmente.

De antemão, um sincero muito obrigado!!

:)
______________________________________
Junior
df9.com.br
Linux Registered User #364954
GNU/Linux: together we're ready!
0

#2 User is offline   davi_alexandre 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 113
  • Joined: 08-July 09
  • Location:Guarulhos - São Paulo

Posted 31 January 2010 - 09:57 AM

Bom, se você já trabalhou com Javascript, VB, ActionScript, deve ter uma noção do que é um evento. Não os vejo tão poderosos e essenciais no Yii como são em outras linguagens, mas a idéia é a mesma =D

No Yii todo componente (ou seja, toda classe derivada de CComponente) tem a capacidade de iniciar eventos. A idéia é "avisar" que algo aconteceu ou estar para acontecer, e permitir ao programador interfira nesse acontecimento. Um event handler (Um callback que manipula um evento) pode alterar o comportamento de um componente, sem a necessidade de mexer no código da classe.

Um exemplo legal do uso de Behaviours com Events é o component do Ismael:

http://www.yiiframew...ivos-de-upload/

Com ele, a tarefa de salvar arquivos atrelados à um Model fica bastante simples. Basta adicionar o comportamento ao modelo e ele se encarrega de organizar, salvar e excluir o arquivo.

Basicamente ele manipula os eventos beforeSave, afterSave e afterDelete do componente ActiveRecord, fazendo automaticamente (uma vez que os eventos sempre são executados) o que, normalmente, seria tarefa do programador.

Se não me engano, há algum tempo atras o ricardograna também fez um Behaviour interessante que facilitava a conversão de datas na hora de salvar e recuperar um modelo do banco. Nessa mesma linha, também já vi nos fóruns um behaviour que se encarregava de atualizar o campo de data de criação ou atualização de um registro.

Bom, espero ter ajudado esclarecer a função do Eventos. Qualquer dúvida é só perguntar ;)
0

#3 User is offline   Junior - df9 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 416
  • Joined: 24-May 09
  • Location:Brazil

Posted 31 January 2010 - 10:12 AM

Davi, ótimo!

Sendo assim, sem mistérios...os eventos beforeSave, beforeValidate e CIA são tranquilos, a confusão me foi causada porque estava lendo o Yii Guide e tem um exemplo com um evento "onClicked" http://www.yiiframew...asics.component

public function onClicked($event)
{
    $this->raiseEvent('onClicked', $event);
}


Fiquei pensando como um componente do Yii poderia receber um click, uma vez que os eventos de interação com mouse são basicamente acionados quando o usuário aponta os objetos na tela (em javascript) e os componentes são instanciados mas trabalham internamente, renderizando o XHTML e não aparecendo diretamente na interface de comunicação com o usuário (ou seja, um componente não seria clicável do meu ponto de vista).

Vou simplesmente desconsiderar o tal do onClicked, sua explicação e os exemplos dos comportamentos desmistificaram isto para mim.

Muito obrigado!!!!

:)

Abraços!!
______________________________________
Junior
df9.com.br
Linux Registered User #364954
GNU/Linux: together we're ready!
0

#4 User is offline   davi_alexandre 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 113
  • Joined: 08-July 09
  • Location:Guarulhos - São Paulo

Posted 31 January 2010 - 10:41 AM

Bom, tratando-se de Yii o exemplo do onClicked realmente é confuso. Mas não impossível =D

Quem ja trabalhou com ASP.NET, sabe que pode-se tranquilamente tratar eventos como o onClick de qualquer botão (ou outro componente que suporte esse evento) em uma página. Nesse caso, será feita uma nova requisição ao servidor e o event handler responsável será executado.

O mais interessante é que o ASP.NET é o responsável pelo exemplo confuso! Os responsáveis pelo Yii eram antes os desenvolvedores do framework PRADO, que era baseado, em partes, no ... ASP.NET!!! (Vocês já repararam como as páginas de erro de ambos são idênticas?). Logo, muita coisa do Yii é cópia do antigo framework, incluindo esse exemplo confuso, mas que funciona perfeitamente no PRADO! ;D
0

#5 User is offline   davi_alexandre 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 113
  • Joined: 08-July 09
  • Location:Guarulhos - São Paulo

Posted 31 January 2010 - 10:44 AM

Outro exemplo de rastro do Asp.net no Yii,os namespaces:

System.web
System.web.form
Sytem.data

Igualzinho o .net =D
0

#6 User is offline   Junior - df9 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 416
  • Joined: 24-May 09
  • Location:Brazil

Posted 31 January 2010 - 04:17 PM

View Postdavi_alexandre, on 31 January 2010 - 10:44 AM, said:

Outro exemplo de rastro do Asp.net no Yii,os namespaces:

System.web
System.web.form
Sytem.data

Igualzinho o .net =D



tá explicado...heheh...nunca mexi com .Net, por isso talvez minha dúvida,

mais uma vez, valeu, Davi!!

:)
______________________________________
Junior
df9.com.br
Linux Registered User #364954
GNU/Linux: together we're ready!
0

#7 User is offline   Daniel Augusto Bastos 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 347
  • Joined: 25-May 09
  • Location:Rio de Janeiro - Brasil

Posted 01 February 2010 - 09:37 AM

Não só .net.  A idéia do JSF se parece bastânte tb. 
Só pra completar, a parte de acesso a dados, quando começei a usar o Yii, era praticamente a mesma do prado. Agora já mudou um pouco, mas ainda segue a mesma idéia. 


Se não me engano, as classes de Caching são as mesmas tb. 


Every solution creates a problem.
twitter.com/nenhumnick
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users