Sem querendo fazer flamewar, mas este código é maior e menos MVC do que o Catalyst.
Brinks a parte, o modulo Catalyst::Lite é uma brincadeira! 2011/7/11 Nelson Ferraz <[email protected]> > Lucas> para validar: > Lucas> sub end :Private { > Lucas> my ( $self, $c ) = @_; > Lucas> if(!$c->user_exists){ > Lucas> $c->res->redirect('/login'); > Lucas> } > Lucas> } > Lucas> > Lucas> para pegar valores do Args: > Lucas> sub alterar :LocalRegex('[0-9]') { > Lucas> my ( $self, $c, @get) = @_; > Lucas> $c->stash->{valor} = $get[0]; > Lucas> $c->forward('View::TT'); > Lucas> } > > Sem querer iniciar uma flamewar, mas este é apenas mais um exemplo > onde o Catalyst complica demais algo que deveria ser simples. > > Veja como isso pode ser feito no Mojolicious: > > #!/usr/bin/perl > > use Mojolicious::Lite; # implicitly use strict and warnings > > # 1: verificar uma variável de sessão > > get '/' => sub { > my $self = shift; > > my $username = $self->session('username'); > > self->redirect_to('/login') if !$username; > > $self->render( text => "Hello, $username" ); > }; > > # 2: definir uma variável de sessão > > get '/login' => sub { > my $self = shift; > > my $username = $self->param('username'); > my $password = $self->param('password'); > > if ($username eq 'foo' and $password eq 'bar') { > $self->session( username => $username ); > $self->redirect_to('/'); > } > > $self->render( text => "Please use: > http://localhost:3000/login?username=xxx;password=yyy" ); > }; > > # 3: remover uma variável de sessão > > get '/logout' => sub { > my $self = shift; > > my $username = $self->session('username'); > $self->session( username => undef ); # poderia ter usado "expire" > > $self->render( text => "Bye bye, $username" ); > }; > > app->start(); > > __END__ > > Mais informações: > > > http://search.cpan.org/~sri/Mojolicious-1.64/lib/Mojolicious/Lite.pm#Sessions > > []s > > Nelson > > PS: Até onde eu sei, o Eden estava trabalhando em um projeto que > traria esse tipo de simplicidade para o Catalyst. Em que pé está esse > projeto, Eden? > =begin disclaimer > Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ > SaoPaulo-pm mailing list: [email protected] > L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> > =end disclaimer > -- Renato Santos http://www.renatocron.com/blog/
=begin disclaimer Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ SaoPaulo-pm mailing list: [email protected] L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> =end disclaimer
