[SP-pm] [Duvida] Sistema MVC com routing dinamico usando HTTP::Server::Simple::CGI e Xslate!
Blabos de Blebe
blabos at gmail.com
Wed Oct 19 20:13:26 PDT 2011
> Mas pelo que to vendo, terei que esquecer meus conceitos de PHP e recomeçar
> do zero!
É que o PHP mascara/mastiga algumas coisas pra supostamente facilitar
a sua vida.
Dar uma "zerada" conceitual é uma boa idéia.
[]'s
2011/10/20 Rafael Silveira <design.silveira em gmail.com>:
> Obrigado Eden, pela resposta!
>
> E que de onde eu vim (PHP), as coisas são diferentes.
> Então vou resumir minha pergunta!
>
> É possível usando HTTP::Server:Simple::CGI criar um esquema de routers
> dinamicos?
> Se nao, onde consigo fazer isso?
>
> Mas pelo que to vendo, terei que esquecer meus conceitos de PHP e recomeçar
> do zero!
>
> []'s
>
> Em 20 de outubro de 2011 00:24, Eden Cardim <edencardim em gmail.com> escreveu:
>>
>> >>>>> "Rafael" == Rafael Silveira <design.silveira em gmail.com> writes:
>>
>> Rafael> Galera, eis me aqui de novo!
>> Rafael> Como estão!
>>
>> Rafael> Pode parecer um tanto estranho eu querer usar
>> Rafael> HTTP::Server::Simple::CGI e Xslate; Criar um ambiente MVC do
>> Rafael> zero; Quando se tem Catalyst ou Dancer. Porem é aquilo, eu
>> Rafael> estou querendo aprender perl para web, e o melhor jeito de
>> Rafael> se fazer isso (no meu ponto de vista), é criar um sistema
>> Rafael> MVC utilizando essas libs.
>>
>> Rafael> Queria saber se é possível usar o modulo
>> Rafael> HTTP::Server::Simple::CGI, para carregar classes
>> Rafael> (controllers) de forma mvc.
>>
>> Não, esse módulo é uma implementação server-side de HTTP, mas você pode
>> integrar ele com outros módulos que façam isso.
>>
>> Rafael> Por exemplo:
>>
>> Rafael> http://localhost:3000/Postagens/listagem
>>
>> Rafael> A url acima, faz um request para meu App usando
>> Rafael> HTTP::Server::Simple::CGI que está escutando na porta 3000.
>> Rafael> Ele le a uri (Postagens/listagem), parseia ela, e define que
>> Rafael> Postagens é meu módulo (controller) e listagem é o método do
>> Rafael> meu módulo.
>>
>> Só toma cuidado com esse tipo de coisa, que é bem fácil você abrir uma
>> falha de segurança. A depender de como você implementou, sua app pode
>> estar aberta à execução de subrotinas arbitrárias.
>>
>> Rafael> Resumindo, faço isso dinamicamente, sem definir rotas.
>>
>> Rafael> Caso passe só Postagens na uri, ele chama o metodo default
>> Rafael> (index por exemplo).
>>
>> Rafael> Gostaria tbm de usar moose para estruturar meus módulos
>> (controllers).
>>
>> Rafael> Mas não sei nem por onde começar.
>>
>> Rafael> Talvez uma estrutura tipo.
>>
>> Rafael> /root
>> Rafael> /lib
>> Rafael> /config
>> Rafael> defaults.yml
>> Rafael> database.yml
>> Rafael> /controllers
>> Rafael> Postagens.pm
>> Rafael> /views
>> Rafael> Default.tt
>> Rafael> /models (nao to qrendo ver isso no momento)
>> Rafael> app.pl
>>
>> Rafael> Sugestões?
>>
>> Recomendo você usar o padrão de módulos do cpan pra estrutura de
>> arquivos da sua app. Assim qualquer desenvolvedor perl minimamente
>> decente vai saber onde olhar dentro da árvore de source. É algo da
>> forma:
>>
>> lib/ -- módulos
>> t/ -- testes
>> script/ -- executáveis
>> Makefile.PL ou dist.ini ou Build.PL -- listagem/instalação de
>> dependências
>> MANIFEST -- listagem de todos os arquivos distribuíveis
>> Changes -- log de mudanças entre releases
>> README -- primeiro arquivo que alguém vai ler
>>
>> É bem recomendável que você use o Dist::Zilla porque ele facilita uma
>> porção de coisas pra você na hora de estruturar isso.
>>
>> Rafael> Realmente eu gostaria de fazer dessa forma, para depois
>> Rafael> aprender a usar um Catalyst, Dancer.
>>
>> Eu acho perda de tempo. Vai ser mais rápido você aprender a estruturar
>> uma aplicação depois de você aprender a usar algo como o Catalyst e
>> depois olhar pro source pra ver como é implementado. Digo Catalyst
>> especificamente porque o Dancer é bem ruinzinho em termos da estrutura
>> interna e qualidade do código em geral. Outro módulo que vale a pena uma
>> olhada na doc e no source é o Plack.
>>
>> --
>> Eden Cardim
>> Software Engineer
>> http://bit.ly/edencardim
>> http://twitter.com/#!/edenc
>> +55 73 9986-3963
>> =begin disclaimer
>> Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>> SaoPaulo-pm mailing list: SaoPaulo-pm em pm.org
>> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
>> =end disclaimer
>
>
> =begin disclaimer
> Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
> SaoPaulo-pm mailing list: SaoPaulo-pm em pm.org
> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
> =end disclaimer
>
>
More information about the SaoPaulo-pm
mailing list