📄 directive.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::Directive;use strict;use warnings FATAL => 'all';use Apache2::XSLoader ();our $VERSION = '2.000002';Apache2::XSLoader::load __PACKAGE__;1;__END__=head1 NAMEApache2::Directive - Perl API for manipulating the Apache configuration tree=head1 Synopsis use Apache2::Directive (); my $tree = Apache2::Directive::conftree(); my $documentroot = $tree->lookup('DocumentRoot'); my $vhost = $tree->lookup('VirtualHost', 'localhost:8000'); my $servername = $vhost->{'ServerName'}; use Data::Dumper; print Dumper $tree->as_hash; my $node = $tree; while ($node) { print $node->as_string; #do something with $node my $directive = $node->directive; my $args = $node->args; my $filename = $node->filename; my $line_num = $node->line_num; if (my $kid = $node->first_child) { $node = $kid; } elsif (my $next = $node->next) { $node = $next; } else { if (my $parent = $node->parent) { $node = $parent->next; } else { $node = undef; } } }=head1 DescriptionC<Apache2::Directive> provides the Perl API for manipulating the Apacheconfiguration tree=head1 APIC<Apache2::Directive> provides the following functions and/or methods:=head2 C<args>Get the arguments for the current directive: $args = $node->args();=over 4=item obj: C<$node>( C<L<Apache2::Directive object|docs::2.0::api::Apache2::Directive>> )=item ret: C<$args> ( string )Arguments are separated by a whitespace in the string.=item since: 2.0.00=backFor example, in F<httpd.conf>: PerlSwitches -M/opt/lib -M/usr/local/lib -wTAnd later: my $tree = Apache2::Directive::conftree(); my $node = $tree->lookup('PerlSwitches'); my $args = $node->args;C<$args> now contains the string "-M/opt/lib -M/usr/local/lib -wT"=head2 C<as_hash>Get a hash representation of the configuration tree, in a formatsuitable for inclusion in E<lt>PerlE<gt> sections. $config_hash = $conftree->as_hash();=over 4=item obj: C<$conftree>( C<L<Apache2::Directive object|docs::2.0::api::Apache2::Directive>> )The config tree to stringify=item ret: C<$config_hash> ( HASH reference )=item since: 2.0.00=backFor example: in F<httpd.conf>: <Location /test> SetHandler perl-script PerlHandler Test::Module </Location>And later: my $tree = Apache2::Directive::conftree(); my $node = $tree->lookup('Location', '/test/'); my $hash = $node->as_hash;C<$hash> now is: { 'SetHandler' => 'perl-script', 'PerlHandler' => 'Test::Module', }=head2 C<as_string>Get a string representation of the configuration node, inF<httpd.conf> format. $string = $node->as_string();=over 4=item obj: C<$node>( C<L<Apache2::Directive object|docs::2.0::api::Apache2::Directive>> )The config tree to stringify=item ret: C<$string> ( string )=item since: 2.0.00=backFor example: in F<httpd.conf>: <Location /test> SetHandler perl-script PerlHandler Test::Module </Location>And later: my $tree = Apache2::Directive::conftree(); my $node = $tree->lookup('Location', '/test/'); my $string = $node->as_string;C<$string> is now: SetHandler perl-script PerlHandler Test::Module=head2 C<conftree>Get the root of the configuration tree: $conftree = Apache2::Directive::conftree();=over 4=item obj: C<Apache2::Directive> ( class name )=item ret: C<$conftree>( C<L<Apache2::Directive object|docs::2.0::api::Apache2::Directive>> )=item since: 2.0.00=back=head2 C<directive>Get the name of the directive in C<$node>: $name = $node->directive();=over 4=item obj: C<$node>( C<L<Apache2::Directive object|docs::2.0::api::Apache2::Directive>> )=item ret: C<$name> ( string )=item since: 2.0.00=back=head2 C<filename>Get the F<filename> the configuration node was created from: $filename = $node->filename();=over 4=item obj: C<$node>( C<L<Apache2::Directive object|docs::2.0::api::Apache2::Directive>> )=item ret: C<$filename> ( string )=item since: 2.0.00=backFor example: my $tree = Apache2::Directive::conftree(); my $node = $tree->lookup('VirtualHost', 'example.com'); my $filename = $node->filename;C<$filename> is now the full path to the F<httpd.conf> thatVirtualHost was defined in.If the directive was added with C<L<add_config()|docs::2.0::api::Apache2::ServerUtil/C_add_config_>>,the filename will be the path to the F<httpd.conf> that trigerredthat Perl code.=head2 C<first_child>Get the first child node of this directive: $child_node = $node->first_child;=over 4=item obj: C<$node>( C<L<Apache2::Directive object|docs::2.0::api::Apache2::Directive>> )=item ret: C<$child_node>( C<L<Apache2::Directive object|docs::2.0::api::Apache2::Directive>> )Returns the first child node of C<$node>, C<undef> if there is none=item since: 2.0.00=back=head2 C<line_num>Get the line number in a F<filename> this node was created at: $lineno = $node->line_num();=over 4=item obj: C<$node>( C<L<Apache2::Directive object|docs::2.0::api::Apache2::Directive>> )=item arg1: C<$lineno> (integer)=item since: 2.0.00=back=head2 C<lookup>Get the node(s) matching a certain value. $node = $conftree->lookup($directive, $args); @nodes = $conftree->lookup($directive, $args);=over 4=item obj: C<$conftree>( C<L<Apache2::Directive object|docs::2.0::api::Apache2::Directive>> )The config tree to stringify=item arg1: C<$directive> ( string )The name of the directive to search for=item opt arg2: C<args> ( string )Optional args to the directive to filter for=item ret: C<$string> ( string / ARRAY of HASH refs )In LIST context, it returns all matching nodes.In SCALAR context, it returns only the first matching node.If called with only C<$directive> value, this method returns all nodesfrom that directive. For example: @Alias = $conftree->lookup('Alias');returns all nodes for C<Alias> directives.If called with an extra C<$args> argument, it returns only nodes whereboth the directive and the args matched. For example: $VHost = $tree->lookup('VirtualHost', '_default_:8000');=item since: 2.0.00=back=head2 C<next>Get the next directive node in the tree: $next_node = $node->next();=over 4=item obj: C<$node>( C<L<Apache2::Directive object|docs::2.0::api::Apache2::Directive>> )=item ret: C<$next_node>( C<L<Apache2::Directive object|docs::2.0::api::Apache2::Directive>> )Returns the next sibling of C<$node>, C<undef> if there is none=item since: 2.0.00=back=head2 C<parent>Get the parent node of this directive: $parent_node = $node->parent();=over 4=item obj: C<$node>( C<L<Apache2::Directive object|docs::2.0::api::Apache2::Directive>> )=item ret: C<parent_node>( C<L<Apache2::Directive object|docs::2.0::api::Apache2::Directive>> )Returns the parent of C<$node>, C<undef> if this node is the root node=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 + -