问题
Separate but related to How to dynamically override forms and/or views using Zend?.
I want Zend to try to load custom forms/views before loading a set of default forms for a web application to let clients create custom forms for their application.
How do you configure the autoloader to load a different path before your default zend classes?
回答1:
Like in the other question, you'll need to use a factory class. This class will check in a predefined directory the existence of the new form or otherwise the default form.
All you will need to do is something like:
// $formname is the parameter passed to the factory class
$defaultclassname = "Default_Form_{$formname}";
$classname = "New_Form_{$formname}";
if(file_exists("/path/to/directory/of/new/{$formname}.php"))
return new $classname();
else
return new $defaultclassname();
This will be done in your factory class, something like /MyLib/Form/Form_Factory.php
And then, in your controller:
$form = MyLib_Form_Factory::createForm('user');
来源:https://stackoverflow.com/questions/3373891/how-to-configure-the-zend-autoloader-to-load-a-custom-path-for-resources-before