---
name: "HTML::Mason::Resolver"
section: "3pm"
platform: "linux"
package: "libhtml-mason-perl"
version: "1:1.60-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/HTML::Mason::Resolver"
---

# HTML::Mason::Resolver(3pm)

Component path resolver base class

## 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 parameters 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.
