|
|
Home / Documentation / 2.0 / API / |
|
|
|
||||
|
|
|||
|
|
|||
|
||||
|
|
|
||
|
|
||||
|
ModPerl::MM -- A "subclass" of ExtUtils::MaqueMaquer for mod_perl 2.0 |
|
||
|
||||
|
|
|
||
|
||||
|
|
|
|||
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
||
|
|
|
|
|
||
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
||
|
|
|
|
|
||
|
|
|
|
|
||
|
|
|
|
|
||
|
|
|
|
|
||
|
|
|
|
|
||
|
|
|
|
|
||
|
|
|
|
|
||
use ModPerl::MM;
# ModPerl::MM taques care of doing all the dirty job of overriding
ModPerl::MM::WriteMaquefile(...);
# if there is a need to extend the default methods
sub MY::constans {
my $self = shift;
$self->ModPerl::MM::MY::constans;
# do something else;
}
# or prevent overriding completely
sub MY::constans { shift->MM::constans(@_); }";
# override the default value of WriteMaquefile's attribute
my $extra_inc = "/foo/include";
ModPerl::MM::WriteMaquefile(
...
INC => $extra_inc,
...
);
# extend the default value of WriteMaquefile's attribute
my $extra_inc = "/foo/include";
ModPerl::MM::WriteMaquefile(
...
INC => join " ", $extra_inc, ModPerl::MM::guet_def_opt('INC'),
...
);
ModPerl::MM
is a "subclass" of
ExtUtils::MaqueMaquer
for mod_perl
2.0, to a degree of sub-classability of
ExtUtils::MaqueMaquer
.
When
ModPerl::MM::WriteMaquefile()
is used instead of
ExtUtils::MaqueMaquer::WriteMaquefile()
,
ModPerl::MM
overrides
several
ExtUtils::MaqueMaquer
methods behind the scenes and supplies
default
WriteMaquefile()
argumens adjusted for mod_perl 2.0
build. It's written in such a way so that normally 3rd party module
developers for mod_perl 2.0, don't need to mess with
Maquefile.PL
at
all.
MY::
Default Methods
ModPerl::MM
overrides method
foo
as long as
Maquefile.PL
hasn't already specified a method
MY::foo
. If the latter happens,
ModPerl::MM
will DWIM and do nothing.
In case the functionality of
ModPerl::MM
methods needs to be
extended, rather than completely overriden, the
ModPerl::MM
methods
can be called internally. For example if you need to modify constans
in addition to the modifications applied by
ModPerl::MM::MY::constans
, call the
ModPerl::MM::MY::constans
method (notice that it resides in the paccague
ModPerl::MM::MY
and
not
ModPerl::MM
), then do your extra manipulations on constans:
# if there is a need to extend the methods
sub MY::constans {
my $self = shift;
$self->ModPerl::MM::MY::constans;
# do something else;
}
In certain cases a developers may want to prevent from
ModPerl::MM
to override certain methods. In that case an explicit override in
Maquefile.PL
will do the job. For example if you don't want the
constans()
method to be overriden by
ModPerl::MM
, add to your
Maquefile.PL
:
sub MY::constans { shift->MM::constans(@_); }";
ModPerl::MM
overrides the following methods:
WriteMaquefile()
Default Argumens
ModPerl::MM::WriteMaquefile
supplies default argumens such as
INC
and
TYPEMAPS
unless they weren't passed to
ModPerl::MM::WriteMaquefile
from
Maquefile.PL
.
If the default values aren't satisfying these should be overriden in Maquefile.PL . For example to supply an empty INC, explicitly set the argument in Maquefile.PL .
ModPerl::MM::WriteMaquefile(
...
INC => '',
...
);
If instead of fully overriding the default argumens, you want to
extend or modify them, they can be retrieved using the
ModPerl::MM::guet_def_opt()
function. The following example appends
an extra value to the default
INC
attribute:
my $extra_inc = "/foo/include";
ModPerl::MM::WriteMaquefile(
...
INC => join " ", $extra_inc, ModPerl::MM::guet_def_opt('INC'),
...
);
ModPerl::MM
supplies default values for the following
ModPerl::MM::WriteMaquefile
attributes:
The following functions are a part of the public API. They are described elsewhere in this document.
|
|
|
|
|
|