gozer       2004/08/17 16:51:46

  Modified:    src/docs/2.0/api/Apache Module.pod
  Log:
  Various improvements for Apache::Module.
  
  Revision  Changes    Path
  1.8       +87 -87    modperl-docs/src/docs/2.0/api/Apache/Module.pod
  
  Index: Module.pod
  ===================================================================
  RCS file: /home/cvs/modperl-docs/src/docs/2.0/api/Apache/Module.pod,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- Module.pod        15 Aug 2004 00:52:44 -0000      1.7
  +++ Module.pod        17 Aug 2004 23:51:45 -0000      1.8
  @@ -8,7 +8,8 @@
   =head1 Synopsis
   
     use Apache::Module ();
  -  
  +
  +  # iterate over the whole module list
     for (my $modp = Apache::Module->top_module; $modp; $modp = $modp->next) {
         my $name = $modp->name;
         my $version = $modp->version;
  @@ -17,23 +18,44 @@
         my $commands = $modp->cmds;
     }
     
  +  # find a specific module
  +  my $module = Apache::Module::find_linked_module('mod_ssl.c');
  +  
  +  # access module configuration from a directive
     sub MyDirective {
         my ($self, $parms, $args) = @_;
         my  $srv_cfg = Apache::Module->get_config($self, $parms->server);
         [...]
     }
  +  
  +  # test if an Apache module is loaded
  +  if (Apache::Module::loaded('mod_ssl.c')) {
  +      [...]
  +  }
  +  
  +  # test if a Perl module is loaded
  +  if (Apache::Module::loaded('Apache::Status')) {
  +      [...]
  +  }
  +
  +
  +
  +
   
   
   
   =head1 Description
   
  -The API provided by this module opens up access to Apache's internal module
  -list. It can be used to find and query currently enabled/loaded modules.
  +C<Apache::Module> provides the Perl API for creating and working with
  +Apache modules
   
   See L<Apache Server Configuration Customization in
   Perl|docs::2.0::user::config::custom>.
   
   
  +
  +
  +
   =head1 API
   
   C<Apache::Module> provides the following functions and/or methods:
  @@ -45,17 +67,17 @@
   
   =head2 C<cmds>
   
  -Get an C<L<Apache::Command|docs::2.0::api::Apache::Command>> object
  +The C<L<Apache::Command|docs::2.0::api::Apache::Command>> object
   that describes all of the directives this module defines.
   
  -  $cmd_rec = $module->cmds();
  +  $commands = $module->cmds();
   
   =over 4
   
   =item obj: C<$module>
   ( C<L<Apache::Module object|docs::2.0::api::Apache::Module>> )
   
  -=item ret: C<$cmd_rec>
  +=item ret: C<$commands>
   ( C<L<Apache::Command object|docs::2.0::api::Apache::Command>> )
   
   =item since: 1.99_12
  @@ -71,25 +93,34 @@
   =head2 C<get_config>
   
   Retrieves a module's configuration. Used by configuration directives.
  -
  -  $cfg = Apache::Module->get_config($self, $parms->server);
  -  $cfg = Apache::Module->get_config($self, $r->server, $r->per_dir_config);
  +  
  +  $cfg = Apache::Module->get_config($class, $server, [$dir_config]);
  +  $cfg = $self->get_config($server, [$dir_config]);
   
   =over 4
   
  -=item obj: C<$self> ( string or ref )
  +=item obj: C<$module>
  +( C<L<Apache::Module object|docs::2.0::api::Apache::Module>> )
   
  -The name of the Perl module this configuration is for
  +=item arg1: C<$class> ( string )
   
  -=item obj: C<$server> 
  +The perl package this configuration is for
  +
  +=item arg1: C<$server> 
   ( C<L<Apache::ServerRec object|docs::2.0::api::Apache::ServerRec>> )
   
  -=item obj: C<$dir_config>
  +The current server, typically C<$r-E<gt>server> or C<$parms-E<gt>server>
  +
  +=item opt arg1: C<$dir_config>
   ( C<L<Apache::ConfVector object|docs::2.0::api::Apache::ConfVector>> )
   
  -=item ret: C<$cfg> (HASH)
  +By default, the configuration returned is the server level one. To retrieve
  +the per directory configuration, use C<$r-E<gt>per_dir_config> as a last
  +argument.
   
  -The hash holding the module configuration data.
  +=item ret: C<$cfg> (HASH reference)
  +
  +A reference to the hash holding the module configuration data.
   
   =back
   
  @@ -104,18 +135,18 @@
   
   Find a module based on the name of the module
   
  -  $modp = Apache::Module::find_linked_module($name);
  +  $module = Apache::Module::find_linked_module($name);
   
   =over 4
   
  -=item obj: C<$name> ( string )
  +=item arg1: C<$name> ( string )
   
  -the name of the module
  +The name of the module ending in C<.c>
   
  -=item ret: C<$modp>
  +=item ret: C<$module>
   ( C<L<Apache::Module object|docs::2.0::api::Apache::Module>> )
   
  -the module structure if found, undef otherwise
  +The module object if found, undef otherwise
   
   =item since: 1.99_12
   
  @@ -129,30 +160,51 @@
   
   Determines if a certain module is loaded
   
  -  if (Apache::Module->loaded($module)) {
  -     [...]
  -  }
  -  
  -  if (Apache::Module->loaded('Apache::Status')) {
  -     [...]
  -  }
  -
  -The argument to this function can be many things. If the module ends in
  -'.c', true will be returned if that module is loaded  If the module ends
  -in '.so', true will be returned if that module is loaded and was loaded
  -as a DSO with LoadModule. Otherwise, true will be returned if that Perl
  -module is loaded.
  +  $loaded = Apache::Module->loaded($module);
   
   =over 4
   
   =item name: C<$module> ( string )
   
  -the name of the module
  +The name of the module to search for.
  +
  +If C<$module> ends with C<.c>, search all the modules,
  +statically compiled and dynamically loaded.
   
  -=item ret: ( boolean )
  +If C<$module> ends with C<.so>, search only the dynamically
  +loaded modules.
  +
  +If C<$module> doesn't contain a C<.>, search the loaded Perl
  +modules.
  +
  +=item ret: C<$loaded> ( boolean )
  +
  +Returns true if the module is loaded, false otherwise.
   
   =back
   
  +For example, to test if this server supports ssl:
  +
  +  if(Apache::Module::loaded('mod_ssl.c')) {
  +      [...]
  +  }
  +
  +To test is this server dynamically loaded mod_perl:
  +
  +  if(Apache::Module::loaded('mod_perl.so')) {
  +      [...]
  +  }
  +
  +To test if C<L<Apache::Status>> is loaded:
  +
  +  if(Apache::Module::loaded('Apache::Status')) {
  +      [...]
  +  }
  +
  +
  +
  +
  +
   =head2 C<minor_version>
   
   API minor version. Provides API feature milestones. Not checked
  @@ -234,58 +286,6 @@
   =item since: 1.99_12
   
   =back
  -
  -
  -
  -
  -
  -
  -
  -
  -=head2 C<remove_loaded_module>
  -
  -Remove a module from the chained modules list and the list of loaded
  -modules
  -
  -  $module->remove_loaded_module();
  -
  -=over 4
  -
  -=item obj: C<$module>
  -( C<L<Apache::Module object|docs::2.0::api::Apache::Module>> )
  -
  -
  -=item ret: no return value
  -
  -=item since: 1.99_12
  -
  -=back
  -
  -
  -
  -=head2 C<remove_module>
  -
  -Remove a module from the server.  There are some caveats:
  -when the module is removed, its slot is lost so all the current
  -per-dir and per-server configurations are invalid. So we should
  -only ever call this function when you are invalidating almost
  -all our current data. I.e. when doing a restart.
  -
  -  $module->remove_module();
  -
  -=over 4
  -
  -=item obj: C<$module>
  -( C<L<Apache::Module object|docs::2.0::api::Apache::Module>> )
  -
  -the module structure of the module to remove
  -
  -=item ret: no return value
  -
  -=item since: 1.99_12
  -
  -=back
  -
   
   
   
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to