[SP-pm] Processando forms de maneira simples
Luis Motta Campos
monsieur_champs em yahoo.com.br
Quarta Julho 12 03:31:40 PDT 2006
Eduardo Verissimo wrote:
> Boa tarde, monges!
>
> Tive um insight a respeito de algo que poderia facilitar minha vida,
> quando estivesse construindo aplicações web, e achei que vocês podiam
> me ajudar a tornar mais fácil esse trabalho inicial.
>
> A idéia é de criar um pequeno script que recebece as requisições de
> formulários em um site e redirecionasse para classes de um package
> específico. Por exemplo:
>
> <form action="/action/EnviarMensagem"> <input type="text"
> name="nome"/> <input type="text" name="mensagem"/> <input
> type="submit"/> </form>
>
> A minha intenção é de que esse form fosse processado por um script -
> action.pl, talvez? - que criasse um objeto dda classe
> Action::EnviarMensagem, o inicializasse com informações do form, e
> chamasse um método "processar" dessa classe.
Muito bem!
Bem-vindo ao meu mundo, bem-vindo ao mundo da programação com padrões
de projeto... ;-) Isto que você "concebeu", meu caro Veríssimo, é
chamado "Controller" e faz parte de um padrão de projeto chamado
"Model-View-Controller" ou simplesmente MVC (para os íntimos).
Aqui tem mais uma casquinha sobre isso:
http://en.wikipedia.org/wiki/Model-view-controller
Espero que o seu inglês esteja razoável. ;-)
> Dessa maneira, bastaria, para tratar um formulário, criar uma classe
> dentro do diretório da package Action.
>
> Eu acabei de pensar nisso, mas acho que já deu pra levantar umas
> dúvidas.
> 1) Colocando action="/action/EnviarMensagem", o Apache vai
> tentar chamar um script /action/EnviarMensagem. O servidor deveria
> chamar o script /action. Há alguma maneira de fazer isso sem ter que
> mexer na configuração do Apache?
Bom, acho que basta zelar para que não exista um diretório chamado
"action", mas sim um script CGI chamado "action". Desta forma, o
restante do caminho vai ser enviado como parâmetro para o script. Eu
apenas não me lembro da variável de ambiente por onde o apache passa
isso, mas é um "*PATH*" da vida.
> 2) Qual é a maneira mais simples de
> transformar diretamente os campos do formulários como se fossem
> membros da classe, sem ter que declará-los?
Eu acredito que a melhor forma de se fazer isto é mesmo extender as
classes de parsing que fazem o trabalho de trazer coisas do ambiente
para dentro do seu programa, e fazer com que elas façam o trabalho.
> 3) Já há algum framework
> que trabalhe de maneira simples assim?
www.catalystframework.org
> É isso, monges! Agradeço desde já pelas opiniões que enviarem!
Aqui tem as minhas.
Putamplexos!
--
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Luis Motta Campos is Software Engineer, Oracle OCP/DBA, Un*x
Sysadmin, Member of {Lisbon,São Paulo,Cascavel,Brasil,London}
Perl Mongers and Perl Fanatic Evangelist
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Mais detalhes sobre a lista de discussão SaoPaulo-pm