By default Zend_Tool uses the IncludePathLoader to find all
the providers that you can run. It recursivly iterates all
include path directories and opens all files that end
with "Manifest.php" or "Provider.php". All classes in these
files are inspected if they implement either
Zend_Tool_Framework_Provider_Interface
or Zend_Tool_Framework_Manifest_ProviderManifestable.
Instances of the provider interface make up for the real functionality
and all their public methods are accessible as provider actions.
The ProviderManifestable interface however requires the implementation of a method
getProviders() which returns an array of
instantiated provider interface instances.
The following naming rules apply on how you can access the providers that were found by the IncludePathLoader:
The last part of your classname split by underscore is used for the provider name, e.g. "My_Provider_Hello" leads to your provider being accessible by the name "hello".
If your provider has a method
getName()it will be used instead of the previous method to determine the name.If your provider has "Provider" as prefix, e.g. it is called
My_HelloProviderit will be stripped from the name so that the provider will be called "hello".
Note
The IncludePathLoader does not follow symlinks, that means you cannot link provider functionality into your include paths, they have to be physically present in the include paths.
Example 943. Exposing Your Providers with a Manifest
You can expose your providers to Zend_Tool by offering a
manifest with a special filename ending with "Manifest.php".
A Provider Manifest is an implementation of the
Zend_Tool_Framework_Manifest_ProviderManifestable
and requires the getProviders() method to return
an array of instantiated providers. In anticipation of our first
own provider My_Component_HelloProvider
we will create the following manifest:
<?php
class My_Component_Manifest
implements Zend_Tool_Framework_Manifest_ProviderManifestable
{
public function getProviders()
{
return array(
new My_Component_HelloProvider()
);
}
}




