[Warszawa-pm] Plack

Zbigniew Lukasiak zzbbyy w gmail.com
Pią, 27 Lis 2009, 02:10:34 PST


Najlepsze intro to chyba będzie od autora:
http://www.slideshare.net/miyagawa/intro-to-psgi-and-plack

Chodzi tak naprawdę o to, że to się pisze tak samo prosto jak kiedyś
zwykłe CGI, ale można to później uruchamiać na mod_perlu, fast cgi,
HTTP::Engine i innych enginach, pełna abstrakcja.  Do tego jest moduł
do testowania i wiele innych dodatków.

Ja sobie dzisiaj napisałem coś takiego:


use Template;
use Plack::Request;

my $t = Template->new({ INCLUDE_PATH => "root"});

sub {
    my $req = Plack::Request->new(shift); i
    my (undef, $template) = split /\//, $req->path;
    my %vars;
    my $out;
    my $res = $req->new_response(200);
    $res->content_type('text/html');
    $t->process($template, \%vars, \$out)
      ? $res->body($out) : $res->body($t->error);
    return $res->finalize;
};

------------------

Później zachowałem to jako pico.pl, stworzyłem katlog 'root' i
wrzuciłem tam templaty TT. Teraz jak uruchomię to przez:

plackup -a pico.pl

to to mi serwuje  te templejty (na przykład pod adresem
http://0:5000/aaa dostaję to co TT wyprodukuje z templejtu nazwanego
'aaa' ).

Fajne jest to, że jak tam dodam na przykład 'die' gdzieś w środku - to
dostanę taki ładny zhtmlowany stack trace.   Włączone jest to 'by
default' dla serwera deweloperskiego, ale nie dla innych - co też jest
dobrym założeniem.


Pozdrawiam,
Zbigniew Lukasiak
http://brudnopis.blogspot.com/
http://perlalchemy.blogspot.com/


Więcej informacji o liście Warszawa-pm