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

- 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
  Given an absolute component path, returns a new HTML::Mason::ComponentSource object.

glob_path
  The only argument to this method is a path glob pattern, something like ``/foo/*'' or ``/foo/*/bar''. Given this path, it should return a list of component paths for components which match this glob pattern.

  For example, the filesystem resolver simply appends this pattern to each component root in turn 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, possibly in a different subclass.

apache_request_to_comp_path ($r)
  This method, given an Apache object, should return a component path. 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.

For example, Mason includes the HTML::Mason::Resolver::File and HTML::Mason::Resolver::File::ApacheHandler classes. The latter simply adds an implementation of the `apache_request_to_comp_path` method for file based components.

# SEE ALSO

HTML::Mason