|
NAMEApache2::Directive - Perl API for manipulating the Apache configuration tree 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;
}
}
}
Description"Apache2::Directive" provides the Perl API for manipulating the Apache configuration tree API"Apache2::Directive" provides the following functions and/or methods: "args"Get the arguments for the current directive: $args = $node->args();
For example, in httpd.conf: PerlSwitches -M/opt/lib -M/usr/local/lib -wT And later: my $tree = Apache2::Directive::conftree();
my $node = $tree->lookup('PerlSwitches');
my $args = $node->args;
$args now contains the string "-M/opt/lib -M/usr/local/lib -wT" "as_hash"Get a hash representation of the configuration tree, in a format suitable for inclusion in <Perl> sections. $config_hash = $conftree->as_hash();
For example: in 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;
$hash now is: {
'SetHandler' => 'perl-script',
'PerlHandler' => 'Test::Module',
}
"as_string"Get a string representation of the configuration node, in httpd.conf format. $string = $node->as_string();
For example: in 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;
$string is now: SetHandler perl-script PerlHandler Test::Module "conftree"Get the root of the configuration tree: $conftree = Apache2::Directive::conftree(); "directive"Get the name of the directive in $node: $name = $node->directive(); "filename"Get the filename the configuration node was created from: $filename = $node->filename(); For example: my $tree = Apache2::Directive::conftree();
my $node = $tree->lookup('VirtualHost', 'example.com');
my $filename = $node->filename;
$filename is now the full path to the httpd.conf that VirtualHost was defined in. If the directive was added with add_config(), the filename will be the path to the httpd.conf that trigerred that Perl code. "first_child"Get the first child node of this directive: $child_node = $node->first_child;
"line_num"Get the line number in a filename this node was created at: $lineno = $node->line_num(); "lookup"Get the node(s) matching a certain value. $node = $conftree->lookup($directive, $args); @nodes = $conftree->lookup($directive, $args);
"next"Get the next directive node in the tree: $next_node = $node->next();
"parent"Get the parent node of this directive: $parent_node = $node->parent();
See Alsomod_perl 2.0 documentation. Copyrightmod_perl 2.0 and its core modules are copyrighted under The Apache Software License, Version 2.0. AuthorsThe mod_perl development team and numerous contributors.
|