Apache::RegistryLoader « MAN PAGE



Apache::RegistryLoaderUser)Contributed Perl DocumenApache::RegistryLoader(3pm)

NAME
       Apache::RegistryLoader - Compile Apache::Registry scripts at server
       startup

SYNOPSIS
	#in PerlScript

	use Apache::RegistryLoader ();

	my $r = Apache::RegistryLoader->new;

	$r->handler($uri, $filename);

	$r->handler($uri, $filename, $virtual_hostname);

DESCRIPTION
       This modules allows compilation of Apache::Registry scripts at server
       startup.  The script's handler routine is compiled by the parent
       server, of which children get a copy.  The Apache::RegistryLoader "han-
       dler" method takes arguments of "uri" and the "filename".  URI to file-
       name translation normally doesn't happen until HTTP request time, so
       we're forced to roll our own translation.

       If filename is omitted and a "trans" routine was not defined, the
       loader will try using the uri relative to ServerRoot.  Example:

	#in httpd.conf
	ServerRoot /opt/www/apache
	Alias /perl/ /opt/www/apache/perl

	#in PerlScript
	use Apache::RegistryLoader ();

	#/opt/www/apache/perl/test.pl
	#is the script loaded from disk here:
	Apache::RegistryLoader->new->handler("/perl/test.pl");

       To make the loader smarter about the uri->filename translation, you may
       provide the "new" method with a "trans" function to translate the uri
       to filename.

       The following example will pre-load all files ending with ".pl" in the
       perl-scripts/ directory relative to ServerRoot.	The example code
       assumes the Location URI "/perl" is an Alias to this directory.

	{
	    use Cwd ();
	    use Apache::RegistryLoader ();
	    use DirHandle ();
	    use strict;

	    my $dir = Apache->server_root_relative("perl-scripts/");

	    my $rl = Apache::RegistryLoader->new(trans => sub {
		my $uri = shift;
		$uri =~ s:^/perl/:/perl-scripts/:;
		return Apache->server_root_relative($uri);
	    });

	    my $dh = DirHandle->new($dir) or die $!;

	    for my $file ($dh->read) {
		next unless $file =~ /\.pl$/;
		$rl->handler("/perl/$file");
	    }
	}

AUTHORS
       Doug MacEachern

       Stas Bekman (Rewrote the handler() to report and handle all the possi-
       ble erroneous conditions)

SEE ALSO
       Apache::Registry(3), Apache(3), mod_perl(3)

perl v5.8.8			  2008-04-10	   Apache::RegistryLoader(3pm)

		

No notes yet, be the first!

Any tips, suggestions, comments or questions about » Apache::RegistryLoader man page?

+ADD A NOTE+

(optional, won't be displayed)


Antispam code: Antispam code