[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