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