The AutoloaderFactoryOverview
Starting with version 1.12.0, Zend Framework now offers multiple autoloader strategies.
Often, it will be useful to employ multiple autoloading strategies; as an example, you
may have a class map for your most used classes, but want to use a PSR-0 style
autoloader for 3rd party libraries.
While you could potentially manually configure these, it may be more useful to define
the autoloader configuration somewhere and cache it. For these cases, the
AutoloaderFactory will be useful.
Quick Start
Configuration may be stored as a PHP array, or in some form of configuration file. As an
example, consider the following PHP array:
array(
'application' => APPLICATION_PATH . '/autoload_classmap.php',
'zf' => APPLICATION_PATH . '/../library/Zend/autoload_classmap.php',
),
'Zend_Loader_StandardAutoloader' => array(
'namespaces' => array(
'Phly\Mustache' => APPLICATION_PATH . '/../library/Phly/Mustache',
'Doctrine' => APPLICATION_PATH . '/../library/Doctrine',
),
),
);
]]>
An equivalent INI-style configuration might look like the following:
Once you have your configuration in a PHP array, you simply pass it to the
AutoloaderFactory.
The AutoloaderFactory will instantiate each autoloader with the
given options, and also call its register() method to register
it with the SPL autoloader.
Configuration OptionsAutoloaderFactory Options$options
The AutoloaderFactory expects an associative array or
Traversable object. Keys should be valid
autoloader class names, and the values should be the options that should be
passed to the class constructor.
Internally, the AutoloaderFactory checks to see if
the autoloader class referenced exists. If not, it will use the StandardAutoloader to
attempt to load the class via the include_path (or, in
the case of "Zend"-namespaced classes, using the Zend Framework library
path). If the class is not found, or does not implement the
SplAutoloader interface,
an exception will be raised.
Available MethodsfactoryInstantiate and register autoloadersfactory$optionsfactory()
This method is static, and is used to instantiate
autoloaders and register them with the SPL autoloader. It expects either an
array or Traversable object as denoted in the
Options section.
getRegisteredAutoloadersRetrieve a list of all autoloaders registered using the factorygetRegisteredAutoloadersgetRegisteredAutoloaders()
This method is static, and may be used to retrieve a list
of all autoloaders registered via the factory() method.
It returns simply an array of autoloader instances.
Examples
Please see the Quick
Start for a detailed example.