[SP-pm] Catalyst/Reaction [was: Benchmark & Catalyst]

Eden Cardim edencardim em gmail.com
Quarta Janeiro 31 10:10:25 PST 2007


On 1/31/07, Solli Honorio <shonorio em gmail.com> wrote:
> Meu querido Eden, quando é que vc vai dar as cara por sampa e compartilhar
> todo este teu conhecimento.... mas ainda bem que temos email, né ;) .... o
> que é Reaction meu filho... troque em miúdos por favor :)

Bem, o Reaction é um projeto criado pelos desenvolvedores do Catalyst
na tentantiva de fornecer uma solução às eternas intrigas a respeito
do padrão MVC. Resumidamente, alguns conceitos foram granularizados:

Os Modelos agora se subdividem em:
- Modelos de Domínio: Modelos comuns tipo DBIC::Schema e coisas
relacionadas à lógica de negócio.
- Modelos de Interface: Modelos que ensinam a aplicação a interagir
com um determinado componente de interface.

As Views foram divididas em Janelas e componentes
- Componentes de Interface (ViewPorts): determinam o 'layout' da
informação, podem ser compostos recursivamente e respondem a eventos
do mundo externo.
- Janelas: Utilizam uma View para renderizar e distribuir eventos pela
hierarquia de componentes.

Controllers:
- Associa ViewPorts a Modelos de Interface e os coloca numa Janela.

Ah, as classes do Reaction são baseadas em Moose, o que significa uma
ligeira proximidade com a sintaxe do Perl6.

Atualmente, alguns Modelos de Interface já vem prontos. Um exemplo
fascinante é o trio ActionReflector (Modelo), ActionForm e ListView
(ViewPorts). Com eles, você declara suas classes de tabela
DBIx::Class, declara quais campos da tabela você quer disponibilizar
na interface, e voilá!, o Reaction cria todas as operações CRUD, com
direito a formulário auto-gerado com validação e confirmação, listas
ordenáveis e exclusão de registros com confirmação. Claro que você
sempre pode usar herança para alterar o comportamento de qualquer um
desses componentes, customizar os templates, etc.
Quer um formulário de login? Dê prum ActionForm um Modelo contendo os
atributos 'username' e 'password' e implemente o método do_apply.
Quando o botão de 'ok' do formulário for clicado, o ActionForm vai
validar as entradas e popular os campos do Modelo com os dados
submetidos e chamar o método do_apply.

Estou meio sem tempo para descrever detalhadamente como funciona, mas
garanto que é apaixonante :).

Em breve, devo estar postando algo no perl.org.br sobre ele (aproveito
e demonstro o DBIx::Class que prometi em outro thread tb).

Espero ter sanado parte da sua curiosidade Solli :)

-- 
Eden Cardim
Instituto Baiano de Biotecnologia
Núcleo de Biologia Computacional e Gestão de Informações Biotecnológicas
Laboratório de Bioinformática
--
"you seem to think that 'close enough' is close enough...
please learn to be 'literal' around programming."
merlyn - on irc.freenode.net#perl


Mais detalhes sobre a lista de discussão SaoPaulo-pm