分开但与How to dynamically override forms and/or views using Zend?相关。
我希望Zend在为Web应用程序加载一组默认表单之前尝试加载自定义表单/视图,以便客户端为其应用程序创建自定义表单。
如何配置自动加载器以在默认的zend类之前加载不同的路径?
答案 0 :(得分:0)
与其他问题一样,您需要使用工厂类。该类将在预定义的目录中检查是否存在新表单或其他默认表单。
您需要做的就是:
// $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();
这将在您的工厂类中完成,例如/MyLib/Form/Form_Factory.php
然后,在你的控制器中:
$form = MyLib_Form_Factory::createForm('user');