[SP-pm] [was: Validar session no Catalyst] Compartilhando experiências com frameworks web em produção

Hernan Lopes hernanlopes at gmail.com
Fri Jul 15 10:05:52 PDT 2011


2011/7/15 Hernan Lopes <hernanlopes at gmail.com>

> tem jeito mais rapido.. nao precisa necessariamente criar uma view...
>
 quanto aos $c->res->{params}, isso é demais .... pq tem $res e $req...
response e request.. isso só simplifica tudo

>
>

> catalyst.pl helloworld
> cd helloworld
>
> vim lib/helloworld/Controller/Root.pm
>
> sub hello_world :Path( '/helloworld' ) :Args(1) {
>   my ( $self, $c, $name ) = @_;
>   $c->res->body('hello world, ' . $name);
>
     $c->res->content_type('text/html; charset=utf-8');

> }
>
> script/helloworld_server.pl -r -d -p 3000
>
> só abrir: http://localhost:3000/helloworld
>
>
> 2011/7/15 Nelson Ferraz <nferraz at gmail.com>
>
>> 2011/7/15 Hernan Lopes <hernanlopes at gmail.com>:
>> > catalyst é perfeito...
>>
>> Se ele é perfeito, significa que não pode ser melhorado. Eu me recuso
>> a pensar dessa maneira.
>>
>> E se ele *não é* perfeito, a questão que fica é: como pode ser
>> melhorado? Todos nós sabemos -- e eu sou o primeiro a admitir -- que o
>> Catalyst é extremamente flexível e poderoso. Qualquer melhoria nessa
>> área trará apenas ganhos marginais, e não nos ajudará a atingir a
>> ubiquidade. (Se é que este é o nosso objetivo.)
>>
>> > depois de trabalhar com .net por 1 ano e pouco,
>> > tive aula de struts na faculdade e te confesso que fiz o trabalho final
>> em um final
>> > de semana após a primeira semana de aula...  acabei indo estudar e
>> trabalhar um
>> > pouco com COBOL em uma oportunidade de estágio que me apareceu... depois
>> > dessas experiências estava me formando em ciência da computação e o
>> assunto
>> > do momento eram "frameworks"
>>
>> Você estudou ciência da computação, tem experiência com .Net, PHP, e
>> até COBOL. Definitivamente não é o público-alvo que me preocupa.
>>
>> Aliás: posso estar enganado, mas a maioria daqueles que defenderam o
>> Catalyst nessa thread estudam (ou estudaram) Ciência da Computação.
>>
>> Vamos pensar sobre isso.
>>
>> E aqui eu peço um favor: não entrem em modo de defesa automático, não
>> tentem proteger o seu framework preferido; ajudem-me a identificar
>> falhas, pontos que podem ser melhorados.
>>
>> Eu quero saber como é que o sujeito que *não* estudou computação e mal
>> sabe HTML -- ou seja, 99% da população -- vai usar o Catalyst.
>>
>> Vamos fazer o seguinte exercício: uma página web simples, com um
>> formulário que ao ser enviado responda "Hello, $nome!". É assim que a
>> maioria das pessoas vai tomar o primeiro contato com o seu framework.
>>
>>
>> 1) PHP
>>
>> Abra um editor de texto e salve estes dois arquivos, em qualquer lugar:
>>
>> ==== index.php =====
>>
>> <form method="post" action="hello.php">
>>  <input type="text" name="name">
>>  <input type="submit">
>> </form>
>>
>> ==== /index.php =====
>>
>>
>> ==== hello.php =====
>>
>> <h1><?php echo( $_POST["name"] ) ?></h1>
>>
>> ==== /hello.php =====
>>
>> Isso é tudo. Dois arquivos, em qualquer lugar, e está funcionando.
>>
>>
>> 2) Mojolicious::Lite
>>
>> ==== hello.pl =====
>>
>> #!/usr/bin/perl
>>
>> use Mojolicious::Lite;
>>
>> get '/' => 'index';
>>
>> post '/hello' => sub {
>>    my $self = shift;
>>    my $name = $self->param('name');
>>    $self->stash( name => $name );
>> } => 'hello';
>>
>> app->start();
>>
>> __DATA__
>> @@ index.html.ep
>> <form method="post" action="/hello">
>>  <input type="text" name="name">
>>  <input type="submit">
>> </form>
>>
>> @@ hello.html.ep
>> <h1>Hello, <%= $name %></h1>
>>
>> ==== /hello.pl =====
>>
>> Execute o programa com: ./hello.pl daemon
>>
>> Isso é tudo. Um arquivo, em qualquer lugar, e está pronto.
>>
>>
>> 3) Catalyst
>>
>> Vou seguir o tutorial em
>>
>> http://search.cpan.org/~bobtfish/Catalyst-Manual/lib/Catalyst/Manual/Tutorial/02_CatalystBasics.pod
>>
>>    $ catalyst.pl Hello
>>    created "Hello"
>>    created "Hello/script"
>>    created "Hello/lib"
>>    created "Hello/root"
>>    ...
>>    created "Hello/script/hello_create.pl"
>>    Change to application directory and Run "perl Makefile.PL" to make
>> sure your install is complete
>>    $ cd Hello
>>
>>    $ script/hello_create.pl view HTML TT
>>
>>
>> Open the lib/Hello/Controller/Root.pm file in your editor.
>>
>>    sub index :Path :Args(0) {
>>        my ( $self, $c ) = @_;
>>
>>        $c->stash(template => 'index.tt');
>>    }
>>
>> Create a root/index.tt template file (put it in the root under the
>> Hello directory that is the base of your application).
>>
>>    <form method="post" action="/hello">
>>        <input type="text" name="name">
>>        <input type="submit">
>>    </form>
>>
>> ==== Neste ponto eu precisei buscar na documentação como obter um
>> parâmetro do request ($c->req->params), pois a informação só aparece
>> duas páginas do tutorial adiante - WTF???? =====
>>
>>    sub hello :Path :Args(0) {
>>        my ( $self, $c ) = @_;
>>
>>        my $name = $c->req->params->{name};
>>
>>        $c->stash(
>>            name => $name,
>>            template => 'hello.tt',
>>        );
>>    }
>>
>> Create a root/index.tt template file (put it in the root under the
>> Hello directory that is the base of your application).
>>
>>    <h1>Hello, [% name %]</h1>
>>
>>
>> Isso é tudo... pelo menos eu acho, pois não consegui instalar o
>> Catalyst no meu Mac [one dependency not OK
>> (MooseX::Role::WithOverloading)]. WTF?!?!?!?!?!!
>>
>> Espero que vocês consigam entender a minha frustração. Imaginem um
>> usuário iniciante, com pouca experiência em Perl!
>>
>> []s
>>
>> Nelson
>> =begin disclaimer
>>   Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>>  SaoPaulo-pm mailing list: SaoPaulo-pm at pm.org
>>  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
>> =end disclaimer
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20110715/9c31b865/attachment-0001.html>


More information about the SaoPaulo-pm mailing list