mod_perl: komunikace mezi handlery
Jan Kasprzak
kas na fi.muni.cz
Úterý Únor 22 11:14:15 MET 2005
Honza Pazdziora wrote:
: On Mon, Feb 21, 2005 at 07:52:05PM +0100, Jan Kasprzak wrote:
: >
: > jakym zpusobem si muzou jednotlive handlery v mod_perlu predavat navzajem
: > nejaka data? Nemyslim jen text, ale obecne perlovy objekt, treba $dbh
: > nebo jinou strukturu.
:
: Pomoci pnotes.
:
No, pnotes to taky nezna (i kdyz vecer jsem na toto taky v manualu
narazil).
: > ale to asi neni ono - jednak jsou to textova data, a jednak mi to nefunguje
: > (pri pouziti "my $c = $r->connection" se dovim, ze Apache::RequestRec
: > nema metodu ->connection(), i kdyz v manualove strance pisou ze ma).
:
: A mas ji usenutou?
No, jine dokumentace pisou ze ->notes je primo metoda $r,
nikoliv $r->connection. Ale ani to nefunguje. Ted mam
----------- /var/www/html/perl/Kas.pm ----------------
package Kas;
use Apache::RequestRec();
use Apache::Const -compile => qw(OK);
sub handler {
my $r = shift;
$r->content_type('text/plain');
print STDERR "Handler called\n";
# $r->pnotes(a=>'b');
# ^^^^ toto kdyz odkomentuju tak to spadne <-------------------
Apache::OK;
}
1;
----------- /etc/httpd/conf.d/test.conf --------------
PerlWarn On
PerlSwitches -I/var/www/html/perl
<Directory /var/www/html/perl>
SetHandler perl-script
# PerlResponseHandler ModPerl::Registry
PerlResponseHandler Kas
PerlOptions +GlobalRequest
PerlOptions +ParseHeaders
Options +ExecCGI
</Directory>
------------------------------------------------------
Hmm, jaky je rozdil mezi ModPerl::Registry, ::RegistryBB,
::PerlRun ?
Jaky nastroj/modul mam pouzit, pokud chci programovat
webove aplikace tak, ze
- URL (tedy <Location>) bude odpovidat primo skriptu (cili
http://mujserver/cesta/skript.pl by znamenalo, ze se spusti
sub handler() z <DocumentRoot>/cesta/skript.pl), zadne
obskurni mapovani modulu na <Location> v httpd.conf.
- preferuji spousteni sub handler(), ale prinejhorsim se muze spoustet
i ten skript jako hlavni program
- skripty se maji predkompilovat, ale musi se zaroven nacist pri zmene
toho skriptu ve filesystemu
- totez (znovunacteni) pro perlove moduly, ktere si reknu (nejlepe
v jinem nez systemovem adresari (Apache::Reload nebo Module::Reload?)
- chci aby aplikace (tedy ten skript.pl) pokud mozno dostala co nejvic
veci zvenku - cili zejmena $r, $q (CGI), pripadne i $dbh.
Tohle ale lze zrejme udelat nejakym handlerem pred ModPerl::Registry.
- a pokud by bylo vic moznosti, tak preferuju system, ktery mi umozni
psat aplikace tak, abych pokud mozno mohl kod psat hned a nemusel
kazdou aplikaci zacit celou strankou ruznych "use" a "new CGI"
a podobne.
-Y.
--
| Jan "Yenya" Kasprzak <kas at {fi.muni.cz - work | yenya.net - private}> |
| GPG: ID 1024/D3498839 Fingerprint 0D99A7FB206605D7 8B35FCDE05B18A5E |
| http://www.fi.muni.cz/~kas/ Czech Linux Homepage: http://www.linux.cz/ |
> Whatever the Java applications and desktop dances may lead to, Unix will <
> still be pushing the packets around for a quite a while. --Rob Pike <
Další informace o konferenci Perl