NAME
Apache::Singleton - Singleton class for mod_perl
VERSION
version 0.17
SYNOPSIS
package Printer;# default:# Request for mod_perl env# Process for non-mod_perl envuse base qw(Apache::Singleton);package Printer::PerRequest;use base qw(Apache::Singleton::Request);package Printer::PerProcess;use base qw(Apache::Singleton::Process);
DESCRIPTION
Apache::Singleton works the same as Class::Singleton, but with various object lifetime (scope). See Class::Singleton first.
OBJECT LIFETIME
By inheriting one of the following sublasses of Apache::Singleton, you can change the scope of your object.
- Request
-
use base qw(Apache::Singleton::Request);One instance for one request. Apache::Singleton will remove instance on each request. Implemented using mod_perl
"pnotes"API. In mod_perl environment (where$ENV{MOD_PERL}is defined), this is the default scope, so inheriting from Apache::Singleton would do the same effect.NOTE: You need
"PerlOptions +GlobalRequest"in your apache configuration in order to use the Request lifetime method.
- Process
-
use base qw(Apache::Singleton::Process);One instance for one httpd process. Implemented using package global. In non-mod_perl environment, this is the default scope, and you may notice this is the same beaviour with Class::Singleton ;)
So you can use this module safely under non-mod_perl environment.
CREDITS
Original idea by Matt Sergeant <[email protected]> and Perrin Harkins <[email protected]>.
Initial implementation and versions 0.01 to 0.07 by Tatsuhiko Miyagawa <[email protected]>.
SEE ALSO
Apache::Singleton::Request, Apache::Singleton::Process, Class::Singleton
SOURCE
The development version is on github at <https://github.com/mschout/apache-singleton> and may be cloned from <git://github.com/mschout/apache-singleton.git>
BUGS
Please report any bugs or feature requests to [email protected] or through the web interface at:
http://rt.cpan.org/Public/Dist/Display.html?Name=Apache-Singleton
AUTHOR
Michael Schout <[email protected]>
COPYRIGHT AND LICENSE
This software is copyright (c) 2009 by Michael Schout.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.