Apache::Singleton(3pm) User Contributed Perl Documentation Apache::Singleton(3pm)NAME
Apache::Singleton - Singleton class for mod_perl
VERSION
version 0.15
SYNOPSIS
package Printer;
# default:
# Request for mod_perl env
# Process for non-mod_perl env
use 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 <matt@sergeant.org> and Perrin Harkins <perrin@elem.com>.
Initial implementation and versions 0.01 to 0.07 by Tatsuhiko Miyagawa <miyagawa@bulknews.net>.
SEE ALSO
Apache::Singleton::Request, Apache::Singleton::Process, Class::Singleton
SOURCE
The development version is on github at http://github.com/mschout/apache-singleton <http://github.com/mschout/apache-singleton> and may be
cloned from git://github.com/mschout/apache-singleton.git <git://github.com/mschout/apache-singleton.git>
BUGS
Please report any bugs or feature requests to bug-apache-singleton@rt.cpan.org or through the web interface at:
http://rt.cpan.org/Public/Dist/Display.html?Name=Apache-Singleton
AUTHOR
Michael Schout <mschout@cpan.org>
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.
perl v5.14.2 2012-04-02 Apache::Singleton(3pm)
Check Out this Related Man Page
MakeMethods::Emulator(3pm) User Contributed Perl Documentation MakeMethods::Emulator(3pm)NAME
Class::MakeMethods::Emulator - Demonstrate class-generator equivalency
SYNOPSIS
# Equivalent to use Class::Singleton;
use Class::MakeMethods::Emulator::Singleton;
# Equivalent to use Class::Struct;
use Class::MakeMethods::Emulator::Struct;
struct ( ... );
# Equivalent to use Class::MethodMaker( ... );
use Class::MakeMethods::Emulator::MethodMaker( ... );
# Equivalent to use base 'Class::Inheritable';
use base 'Class::MakeMethods::Emulator::Inheritable';
MyClass->mk_classdata( ... );
# Equivalent to use base 'Class::AccessorFast';
use base 'Class::MakeMethods::Emulator::AccessorFast';
MyClass->mk_accessors(qw(this that whatever));
# Equivalent to use accessors( ... );
use Class::MakeMethods::Emulator::accessors( ... );
# Equivalent to use mcoder( ... );
use Class::MakeMethods::Emulator::mcoder( ... );
DESCRIPTION
In several cases, Class::MakeMethods provides functionality closely equivalent to that of an existing module, and it is simple to map the
existing module's interface to that of Class::MakeMethods.
Class::MakeMethods::Emulator provides emulators for Class::MethodMaker, Class::Accessor::Fast, Class::Data::Inheritable, Class::Singleton,
Class::Struct, accessors, and mcoder, each of which passes the original module's test suite, usually requiring only the addition of a a
single line to each test, activating the emulation module.
Beyond demonstrating compatibility, these emulators also generally indicate the changes needed to switch to direct use of
Class::MakeMethods functionality, illustrate commonalities between the various modules, and serve as a source for new ideas that can be
integrated into Class::MakeMethods.
SEE ALSO
See Class::MakeMethods for general information about this distribution.
See Class::MakeMethods::Emulator::accessors, and accessors from CPAN.
See Class::MakeMethods::Emulator::Struct, and Class::Struct from CPAN.
See Class::MakeMethods::Emulator::AccessorFast, and Class::Accessor::Fast from CPAN.
See Class::MakeMethods::Emulator::Inheritable, and Class::Data::Inheritable from CPAN.
See Class::MakeMethods::Emulator::MethodMaker, and Class::MethodMaker from CPAN.
See Class::MakeMethods::Emulator::Singleton, and Class::Singleton from CPAN.
See Class::MakeMethods::Emulator::mcoder, and mcoder from CPAN.
perl v5.10.1 2004-09-06 MakeMethods::Emulator(3pm)