You are viewing a plain text version of this content. The canonical link for it is here.
Posted to docs-cvs@perl.apache.org by st...@apache.org on 2003/01/29 04:40:39 UTC
cvs commit: modperl-docs/src/docs/2.0/api/Apache Directive.pod
stas 2003/01/28 19:40:39
Modified: src/docs/2.0/api config.cfg
Added: src/docs/2.0/api/Apache Directive.pod
Log:
Apache::Directive pod (committed with some tweaks)
Submitted by: Philippe M. Chiasson <go...@cpan.org>
Reviewed by: stas
Revision Changes Path
1.15 +1 -0 modperl-docs/src/docs/2.0/api/config.cfg
Index: config.cfg
===================================================================
RCS file: /home/cvs/modperl-docs/src/docs/2.0/api/config.cfg,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- config.cfg 29 Jan 2003 02:47:12 -0000 1.14
+++ config.cfg 29 Jan 2003 03:40:38 -0000 1.15
@@ -18,6 +18,7 @@
group => 'Apache:: Core API',
chapters => [qw(
Apache/Log.pod
+ Apache/Directive.pod
Apache/RequestRec.pod
Apache/RequestUtil.pod
Apache/ServerUtil.pod
1.1 modperl-docs/src/docs/2.0/api/Apache/Directive.pod
Index: Directive.pod
===================================================================
=head1 NAME
Apache::Directive -- A Perl API for manipulating Apache configuration tree
=head1 Synopsis
use Apache::Directive;
my $tree = Apache::Directive->conftree;
my $documentroot = $tree->lookup('DocumentRoot');
my $vhost = $tree->lookup('VirtualHost', 'localhost:8000');
my $servername = $vhost->{'ServerName'};
print $tree->as_string;
use Data::Dumper;
print Dumper($tree->as_hash);
my $node = $tree;
while ($node) {
#do something with $node
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 Description
C<Apache::Directive> allows its users to search and navigate the
internal Apache configuration.
Internally, this information is stored in a tree structure. Each node
in the tree has a reference to it's parent (if it's not the root), its
first child (if any), and to its next sibling.
=head1 Class Methods
Function arguments (if any) and return values are shown in the
function's synopsis.
=head2 C<conftree()>
$tree = Apache::Directive->conftree();
Returns the root of the configuration tree.
=head1 Object Methods
Function arguments (if any) and return values are shown in the
function's synopsis.
=head2 C<next()>
$node = $node->next;
Returns the next sibbling of C<$node>, C<undef> otherwise
=head2 C<first_child()>
$subtree = $node->first_child;
Returns the first child node of C<$node>, undef otherwise
=head2 C<parent()>
$parent = $node->parent;
Returns the parent of C<$node>, undef if this node is the root node
=head2 C<directive()>
$name = $node->directive;
Returns the name of the directive in C<$node>.
=head2 C<args()>
$args = $node->args;
Returns the arguments to this C<$node>
=head2 C<filename()>
$fname = $node->filename;
Returns the filename this C<$node> was created from
=head2 C<line_number()>
$lineno = $node->line_number;
Returns the line number in C<filename> this C<$node> was created from
=head2 C<as_string()>
print $tree->as_string();
Returns a string representation of the configuration tree, in
httpd.conf format.
=head2 C<as_hash()>
$config = $tree->as_hash();
Returns a hash representation of the configuration tree, in a format
suitable for inclusion in the E<lt>PerlE<gt> sections.
=head2 C<lookup()>
lookup($directive, [$args])
Returns node(s) matching a certain value. In list context, it will
return all matching nodes. In scalar context, it will return only the
first matching node.
If called with only one C<$directive> value, this will return all
nodes from that directive:
@Alias = $tree->lookup('Alias');
Would return all nodes for Alias directives.
If called with an extra C<$args> argument, this will return only nodes
where both the directive and the args matched:
$VHost = $tree->lookup('VirtualHosts', '_default_:8000');
=head1 Authors
=head1 Copyright
=cut
---------------------------------------------------------------------
To unsubscribe, e-mail: docs-cvs-unsubscribe@perl.apache.org
For additional commands, e-mail: docs-cvs-help@perl.apache.org