Loading Plugins

The SplAutoloader Interface

Overview

While any valid PHP callback may be registered with spl_autoload_register(), Zend Framework autoloaders often provide more flexibility by being stateful and allowing configuration. To provide a common interface, Zend Framework provides the SplAutoloader interface.

Objects implementing this interface provide a standard mechanism for configuration, a method that may be invoked to attempt to load a class, and a method for registering with the SPL autoloading mechanism.

Quick Start

To create your own autoloading mechanism, simply create a class implementing the SplAutoloader interface (you may review the methods defined in the Methods section). As a simple example, consider the following autoloader, which will look for a class file named after the class within a list of registered directories.

  1. span style="color: #ff0000;">'Zend/Loader/SplAutoloader.php''.php''autoload'));
  2.     }
  3. }

Configuration Options

This component defines no configuration options, as it is an interface.

Available Methods

__construct ( $options = null )

Initialize and configure an autoloader

Autoloader constructors should optionally receive configuration options. Typically, if received, these will be passed to the setOptions() method to process.

setOptions ( $options )

Configure the autoloader state

Used to configure the autoloader. Typically, it should expect either an array or a Traversable object, though validation of the options is left to implementation. Additionally, it is recommended that the method return the autoloader instance in order to implement a fluent interface.

autoload ( $classname )

Attempt to resolve a class name to the file defining it

This method should be used to resolve a class name to the file defining it. When a positive match is found, return the class name; otherwise, return a boolean false.

register

Register the autoloader with the SPL autoloader

Should be used to register the autoloader instance with spl_autoload_register(). Invariably, the method should look like the following:

  1. span style="color: #ff0000;">'autoload'));
  2. }

Examples

Please see the Quick Start for a complete example.


Loading Plugins