📄 cmdparms.pm
字号:
# # /*# * *********** WARNING **************# * This file generated by ModPerl::WrapXS/0.01# * Any changes made here will be lost# * ***********************************# * 01: lib/ModPerl/Code.pm:708# * 02: lib/ModPerl/WrapXS.pm:624# * 03: lib/ModPerl/WrapXS.pm:1173# * 04: Makefile.PL:423# * 05: Makefile.PL:325# * 06: Makefile.PL:56# */# package Apache2::CmdParms;use strict;use warnings FATAL => 'all';use Apache2::XSLoader ();our $VERSION = '2.000002';Apache2::XSLoader::load __PACKAGE__;1;__END__=head1 NAMEApache2::CmdParms - Perl API for Apache command parameters object=head1 Synopsis use Apache2::CmdParms (); use Apache2::Module (); use Apache2::Const -compile => qw(NOT_IN_LOCATION); my @directives = ( { name => 'MyDirective', cmd_data => 'some extra data', }, ); Apache2::Module::add(__PACKAGE__, \@directives); sub MyDirective { my ($self, $parms, $args) = @_; # push config $parms->add_config(['ServerTokens off']); # this command's command object $cmd = $parms->cmd; # check the current command's context $error = $parms->check_cmd_context(Apache2::Const::NOT_IN_LOCATION); # this command's context $context = $parms->context; # this command's directive object $directive = $parms->directive; # the extra information passed thru cmd_data to # Apache2::Module::add() $info = $parms->info; # which methods are <Limit>ed ? $is_limited = $parms->method_is_limited('GET'); # which allow-override bits are set $override = $parms->override; # the path this command is being invoked in $path = $parms->path; # this command's pool $p = $parms->pool; # this command's configuration time pool $p = $parms->temp_pool; }=head1 DescriptionC<Apache2::CmdParms> provides the Perl API for Apache commandparameters object.=head1 APIC<Apache2::CmdParms> provides the following functions and/or methods:=head2 C<add_config>Dynamically add Apache configuration at request processing runtime: $parms->add_config($lines);=over 4=item obj: C<$parms>( C<L<Apache2::CmdParms object|docs::2.0::api::Apache2::CmdParms>> )=item arg1: C<$lines> (ARRAY ref)An ARRAY reference containing configuration lines per element, withoutthe new line terminators.=item ret: no return value=item since: 2.0.00=backSee also:C<L<$s-E<gt>add_config|docs::2.0::api::Apache2::ServerUtil/C_add_config_>>,C<L<$r-E<gt>add_config|docs::2.0::api::Apache2::RequestUtil/C_add_config_>>=head2 C<check_cmd_context>Check the current command against a context bitmask of forbidden contexts. $error = $parms->check_cmd_context($check);=over 4=item obj: C<$parms>( C<L<Apache2::CmdParms object|docs::2.0::api::Apache2::CmdParms>> )=item arg1: C<$check> ( C<L<Apache2::Const :contextconstant|docs::2.0::api::Apache2::Const/C__context_>> )the context to check against.=item ret: C<$error> ( string / undef )If the context is forbidden, this method returns a textual descriptionof why it was forbidden. If the context is permitted, this method returnsC<undef>.=item since: 2.0.00=backFor example here is how to check whether a command is allowed in theC<E<lt>LocationE<gt>> container: use Apache2::Const -compile qw(NOT_IN_LOCATION); if (my $error = $parms->check_cmd_context(Apache2::Const::NOT_IN_LOCATION)) { die "directive ... not allowed in <Location> context" }=head2 C<cmd>This module's command information $cmd = $parms->cmd();=over 4=item obj: C<$parms>( C<L<Apache2::CmdParms object|docs::2.0::api::Apache2::CmdParms>> )=item ret: C<$cmd>( C<L<Apache2::Command object|docs::2.0::api::Apache2::Command>> )=item since: 2.0.00=back=head2 C<directive>This command's directive object in the configuration tree $directive = $parms->directive;=over 4=item obj: C<$parms>( C<L<Apache2::CmdParms object|docs::2.0::api::Apache2::CmdParms>> )=item ret: C<$directive>( C<L<Apache2::Directive object|docs::2.0::api::Apache2::Directive>> )The current directive node in the configuration tree=item since: 2.0.00=back=head2 C<info>The extra information passed through C<cmd_data> inC<L<Apache2::Module::add()|docs::2.0::api::Apache2::Module/C_add_>>. $info = $parms->info;=over 4=item obj: C<$parms>( C<L<Apache2::CmdParms object|docs::2.0::api::Apache2::CmdParms>> )=item ret: C<$info> ( string )The string passed in C<cmd_data>=item since: 2.0.00=backFor example here is how to pass arbitrary information to a directivesubroutine: my @directives = ( { name => 'MyDirective1', func => \&MyDirective, cmd_data => 'One', }, { name => 'MyDirective2', func => \&MyDirective, cmd_data => 'Two', }, ); Apache2::Module::add(__PACKAGE__, \@directives); sub MyDirective { my ($self, $parms, $args) = @_; my $info = $parms->info; }In this example C<$info> will either be C<'One'> or C<'Two'> dependingon whether the directive was called as I<MyDirective1> orI<MyDirective2>.=head2 C<method_is_limited>Discover if a method is E<lt>LimitE<gt>ed in the current scope $is_limited = $parms->method_is_limited($method);=over 4=item obj: C<$parms>( C<L<Apache2::CmdParms object|docs::2.0::api::Apache2::CmdParms>> )=item arg1: C<$method> (string)The name of the method to check for=item ret: C<$is_limited> ( boolean )=item since: 2.0.00=backFor example, to check if the C<GET> method is beingC<E<lt>LimitE<gt>>ed in the current scope, do: if ($parms->method_is_limited('GET') { die "..."; }=head2 C<override>Which allow-override bits are set (C<AllowOverride> directive) $override = $parms->override;=over 4=item obj: C<$parms>( C<L<Apache2::CmdParms object|docs::2.0::api::Apache2::CmdParms>> )=item ret: C<$override> ( bitmask )the allow-override bits bitmask, which can be tested againstC<L<Apache2::Const :overrideconstants|docs::2.0::api::Apache2::Const/C__override_>>.=item since: 2.0.00=backFor example to check that the C<AllowOverride>'s C<AuthConfig> andC<FileInfo> options are enabled for this command, do: use Apache2::Const -compile qw(:override); $wanted = Apache2::Const::OR_AUTHCFG | Apache2::Const::OR_FILEINFO; $masked = $parms->override & $wanted; unless ($wanted == $masked) { die "..."; }=head2 C<path>The current pathname/location/match of the block this command is in $path = $parms->path;=over 4=item obj: C<$parms>( C<L<Apache2::CmdParms object|docs::2.0::api::Apache2::CmdParms>> )=item ret: C<$path> ( string / C<undef> )If configuring for a block like E<lt>LocationE<gt>,E<lt>LocationMatchE<gt>, E<lt>DirectoryE<gt>, etc., the pathname partof that directive. Otherwise, C<undef> is returned.=item since: 2.0.00=backFor example for a container block: <Location /foo> ... </Location>I<'/foo'> will be returned.=head2 C<pool>Pool associated with this command $p = $parms->pool;=over 4=item obj: C<$parms>( C<L<Apache2::CmdParms object|docs::2.0::api::Apache2::CmdParms>> )=item ret: C<$p>( C<L<APR::Pool object|docs::2.0::api::APR::Pool>> )=item since: 2.0.00=back=head2 C<server>The (vhost) server this command was defined in F<httpd.conf> $s = $parms->server;=over 4=item obj: C<$parms>( C<L<Apache2::CmdParms object|docs::2.0::api::Apache2::CmdParms>> )=item ret: C<$s>( C<L<Apache2::Server object|docs::2.0::api::Apache2::ServerRec>> )=item since: 2.0.00=back=head2 C<temp_pool>Pool for scratch memory; persists during configuration, but destroyedbefore the first request is served. $temp_pool = $parms->temp_pool;=over 4=item obj: C<$parms>( C<L<Apache2::CmdParms object|docs::2.0::api::Apache2::CmdParms>> )=item ret: C<$temp_pool>( C<L<APR::Pool object|docs::2.0::api::APR::Pool>> )=item since: 2.0.00=backMost likely you shouldn't use this pool object, unless you know whatyou are doing. Use C<L<$parms-E<gt>pool|/C_pool_>> instead.=head1 Unsupported APIC<Apache2::CmdParms> also provides auto-generated Perl interface fora few other methods which aren't tested at the moment and thereforetheir API is a subject to change. These methods will be finalizedlater as a need arises. If you want to rely on any of the followingmethods please contact the L<the mod_perl development mailinglist|maillist::dev> so we can help each other take the steps necessaryto shift the method to an officially supported API.=head2 C<context>Get context containing pointers to modules' per-dirconfig structures. $context = $parms->context;=over 4=item obj: C<$parms>( C<L<Apache2::CmdParms object|docs::2.0::api::Apache2::CmdParms>> )=item ret: C<$newval>( C<L<Apache2::ConfVector object|docs::2.0::api::Apache2::ConfVector>> )Returns the commands' per-dir config structures=item since: 2.0.00=back=head1 See AlsoL<mod_perl 2.0 documentation|docs::2.0::index>.=head1 Copyrightmod_perl 2.0 and its core modules are copyrighted underThe Apache Software License, Version 2.0.=head1 AuthorsL<The mod_perl development team and numerouscontributors|about::contributors::people>.=cut
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -