[SP-pm] [Duvida] Sistema MVC com routing dinamico usando HTTP::Server::Simple::CGI e Xslate!
Rafael Silveira
design.silveira at gmail.com
Wed Oct 19 19:57:18 PDT 2011
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
>
-------------- Pr�xima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20111020/1ac18761/attachment.html>
More information about the SaoPaulo-pm
mailing list