[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