This manual page is for Mac OS X version 10.6

If you are running a different version of Mac OS X, view the documentation locally:

  • In Terminal, using the man(1) command

Reading manual pages

Manual pages are intended as a quick reference for people who already understand a technology.

  • For more information about the manual page format, see the manual page for manpages(5).

  • For more information about this technology, look for other documentation in the Apple Reference Library.

  • For general information about writing shell scripts, read Shell Scripting Primer.



apache_mod_perl-103~96::mod_perl-2.0.2.0.4::docs::api::Apache2::Module(3)



NAME
       Apache2::Module - Perl API for creating and working with Apache modules

Synopsis
         use Apache2::Module ();

         #Define a configuration directive
         my @directives = (
             {
                 name => 'MyDirective',
             }
         );

         Apache2::Module::add(__PACKAGE__, \@directives);

         # iterate over the whole module list
         for (my $modp = Apache2::Module::top_module(); $modp; $modp = $modp->next) {
             my $name                  = $modp->name;
             my $index                 = $modp->module_index;
             my $ap_api_major_version  = $modp->ap_api_major_version;
             my $ap_api_minor_version  = $modp->ap_api_minor_version;
             my $commands              = $modp->cmds;
         }

         # find a specific module
         my $module = Apache2::Module::find_linked_module('mod_ssl.c');

         # remove a specific module
         $module->remove_loaded_module();

         # access module configuration from a directive
         sub MyDirective {
             my ($self, $parms, $args) = @_;
             my  $srv_cfg = Apache2::Module::get_config($self, $parms->server);
             [...]
         }

         # test if an Apache module is loaded
         if (Apache2::Module::loaded('mod_ssl.c')) {
             [...]
         }

         # test if a Perl module is loaded
         if (Apache2::Module::loaded('Apache2::Status')) {
             [...]
         }

Description
       "Apache2::Module" provides the Perl API for creating and working with Apache modules

       See Apache Server Configuration Customization in Perl.

API
       "Apache2::Module" provides the following functions and/or methods:

       "add"

       Add a module's custom configuration directive to Apache.

         Apache2::Module::add($package, $cmds);

       arg1: $package ( string )
           the package of the module to add

       arg2: $cmds ( ARRAY of HASH refs )
           the list of configuration directives to add

       ret: no return value
       since: 2.0.00

       See also Apache Server Configuration Customization in Perl.

       "ap_api_major_version"

       Get the httpd API version this module was build against, not the module's version.

         $major_version = $module->ap_api_major_version();

       obj: $module ( "Apache2::Module object" )
       ret: $major_version ( integer )
       since: 2.0.00

       This methid is used to check that module is compatible with this version of the server before loading
       it.

       "ap_api_minor_version"

       Get the module API minor version.

         $minor_version = $module->ap_api_minor_version();

       obj: $module ( "Apache2::Module object" )
       ret: $minor_version ( integer )
       since: 2.0.00

       "ap_api_minor_version()" provides API feature milestones.

       It's not checked during module init.

       "cmds"

       Get the "Apache2::Command" object, describing all of the directives this module defines.

         $command = $module->cmds();

       obj: $module ( "Apache2::Module object" )
       ret: $command ( "Apache2::Command object" )
       since: 2.0.00

       "get_config"

       Retrieve a module's configuration. Used by configuration directives.

         $cfg = Apache2::Module::get_config($class, $server, $dir_config);
         $cfg = Apache2::Module::get_config($class, $server);
         $cfg =          $self->get_config($server, $dir_config);
         $cfg =          $self->get_config($server);

       obj: $module ( "Apache2::Module object" )
       arg1: $class ( string )
           The Perl package this configuration is for

       arg2: $server ( "Apache2::ServerRec object" )
           The current server, typically "$r->server" or "$parms->server".

       opt arg3: $dir_config ( "Apache2::ConfVector object" )
           By default, the configuration returned is the server level one. To retrieve the per directory
           configuration, use "$r->per_dir_config" as a last argument.

       ret: $cfg (HASH reference)
           A reference to the hash holding the module configuration data.

       since: 2.0.00

       See also Apache Server Configuration Customization in Perl.

       "find_linked_module"

       Find a module based on the name of the module

         $module = Apache2::Module::find_linked_module($name);

       arg1: $name ( string )
           The name of the module ending in ".c"

       ret: $module ( "Apache2::Module object" )
           The module object if found, "undef" otherwise.

       since: 2.0.00

       For example:

         my $module = Apache2::Module::find_linked_module('mod_ssl.c');

       "loaded"

       Determine if a certain module is loaded

         $loaded = Apache2::Module::loaded($module);

       name: $module ( string )
           The name of the module to search for.

           If $module ends with ".c", search all the modules, statically compiled and dynamically loaded.

           If $module ends with ".so", search only the dynamically loaded modules.

           If $module doesn't contain a ".", search the loaded Perl modules (checks %INC).

       ret: $loaded ( boolean )
           Returns true if the module is loaded, false otherwise.

       since: 2.0.00

       For example, to test if this server supports ssl:

         if (Apache2::Module::loaded('mod_ssl.c')) {
             [...]
         }

       To test is this server dynamically loaded mod_perl:

         if (Apache2::Module::loaded('mod_perl.so')) {
             [...]
         }

       To test if "Apache2::Status" is loaded:

         if (Apache2::Module::loaded('Apache2::Status')) {
             [...]
         }

       "module_index"

       Get the index to this modules structures in config vectors.

         $index = $module->module_index();

       obj: $module ( "Apache2::Module object" )
       ret: $index ( integer )
       since: 2.0.00

       "name"

       Get the name of the module's .c file

         $name = $module->name();

       obj: $module ( "Apache2::Module object" )
       ret: $name ( string )
       since: 2.0.00

       For example a mod_perl module, will return: mod_perl.c.

       "next"

       Get the next module in the list, "undef" if this is the last module in the list.

         $next_module = $module->next();

       obj: $module ( "Apache2::Module object" )
       ret: $next_module ( "Apache2::Module object" )
       since: 2.0.00

       "remove_loaded_module"

       Remove a module from the list of loaded modules permanently.

         $module->remove_loaded_module();

       obj: $module ( "Apache2::Module object" )
       ret: no return value
       since: 2.0.00

       "top_module"

       Returns the first module in the module list. Usefull to start a module iteration.

         $module = Apache2::Module::top_module();

       ret: $module ( "Apache2::Module object" )
       since: 2.0.00

See Also
       mod_perl 2.0 documentation.

Copyright
       mod_perl 2.0 and its core modules are copyrighted under The Apache Software License, Version 2.0.

Authors
       The mod_perl development team and numerous contributors.



perl v5.10.0                           apache_mod296::mod_perl-2.0.4::docs::api::Apache2::Module(3)

Reporting Problems

The way to report a problem with this manual page depends on the type of problem:

Content errors
Report errors in the content of this documentation with the feedback links below.
Bug reports
Report bugs in the functionality of the described tool or API through Bug Reporter.
Formatting problems
Report formatting mistakes in the online version of these pages with the feedback links below.