- NAME
- SYNOPSIS
- DESCRIPTION
- Class::Container
- METHODS

- Using a Resolver with HTML::Mason::ApacheHandler

- SEE ALSO

# NAME

HTML::Mason::Resolver - Component path resolver base class

# SYNOPSIS

      # make a subclass and use it

# DESCRIPTION

The resolver is responsible for translating a component path like /foo/index.html into a component. By default, Mason expects components to be stored on the filesystem, and uses the HTML::Mason::Resolver::File class to get information on these components.

The HTML::Mason::Resolver provides a virtual parent class from which all resolver implementations should inherit.

# Class::Container

This class is used by most of the Mason object's to manage constructor parameters and has-a relationships with other objects.

See the documentation on this class for details on how to declare what paremeters are valid for your subclass's constructor.

HTML::Mason::Resolver is a subclass of Class::Container so you do not need to subclass it yourself.

# METHODS

If you are interested in creating a resolver subclass, you must implement the following methods.

new

  This method is optional. The new method included in this class is simply inherited from `Class::Container`. If you need something more complicated done in your new method you will need to override it in your subclass.

get_info

  Takes three arguments: an absolute component path, a component root key, and a component root path. Returns a new HTML::Mason::ComponentSource object.

glob_path

  Takes two arguments: a path glob pattern, something like ``/foo/*'' or ``/foo/*/bar'', and a component root path. Returns a list of component paths for components which match this glob pattern.

  For example, the filesystem resolver simply appends this pattern to the component root path and calls the Perl `glob()` function to find matching files on the filesystem.

## Using a Resolver with HTML::Mason::ApacheHandler

If you are creating a new resolver that you intend to use with the HTML::Mason::ApacheHandler module, then you must implement the following method as well.

apache_request_to_comp_path ($r, @comp_root_array)

  This method, given an Apache object and a list of component root pairs, should return a component path or undef if none exists. This method is used by the HTML::Mason::ApacheHandler class to translate web requests into component paths. You can omit this method if your resolver subclass will never be used in conjunction with HTML::Mason::ApacheHandler.

# SEE ALSO

HTML::Mason