[Warszawa-pm] Subclassing aplikacji
Zbigniew Lukasiak
zzbbyy w gmail.com
Wto, 8 Cze 2010, 08:52:04 PDT
2010/6/8 piotr pogorzelski <pp w webtel.pl>:
> -------- Original Message --------
> Subject: Re: [Warszawa-pm] Subclassing aplikacji
> From: Tadeusz Sośnierz <tadzikes w gmail.com>
> To: warszawa-pm w pm.org
> Date: Tue Jun 08 2010 17:43:16 GMT+0200 (CEST)
>
>> On 8-06-2010 12:09:50, piotr pogorzelski wrote:
>>>
>>> do tego ta notacja per6,
>>> ktora totalnie mi nie lezy - pisanie kodu aby wygladal
>>> jak jezyk naturalny, nie wiadomo na pierwszy rzut oka
>>> co jest czym, grrrr.
>>
>> Możesz przybliżyć, podać przykład?
>>
>
> # GET /bye
> get '/bye' => sub { shift->render(text => 'Bye!') };
>
> # POST /bye
> post '/bye' => sub { shift->render(text => 'Bye!') };
>
> # GET|POST|DELETE /bye
> any [qw/get post delete/] => '/bye' => sub {
> shift->render(text => 'Bye!');
> };
>
> # /baz
> any '/baz' => sub {
> my $self = shift;
> my $method = $self->req->method;
> $self->render(text => "You called /baz with $method");
> };
Mi to jakiś uczuć estetycznych nie obraża, ale ciężko takie coś zrobić
tak, żeby działało dobrze z dziedziczeniem, a bez używania Class::MOP
to praktycznie niemożliwe. Dlatego w WebNano trzymam się
najprostrzych rozwiązań - metody które mają być akcjami oznaczam
postfixem '_action' albo rejestruję je w 'url_map' (który działa tak
jak run_mode w CGI::Application). Ale dla tych którzy lubią taki kod
dodałem przykład jak napisać rozszerzenie które by to realizowało.
Z.
> _______________________________________________
> Warszawa-pm mailing list
> Warszawa-pm w pm.org
> http://mail.pm.org/mailman/listinfo/warszawa-pm
>
--
Zbigniew Lukasiak
http://brudnopis.blogspot.com/
http://perlalchemy.blogspot.com/
Więcej informacji o liście Warszawa-pm