如何配置Zend自动加载器以在默认路径之前加载资源的自定义路径

时间:2010-07-30 17:21:41

标签: php zend-framework zend-autoloader

分开但与How to dynamically override forms and/or views using Zend?相关。

我希望Zend在为Web应用程序加载一组默认表单之前尝试加载自定义表单/视图,以便客户端为其应用程序创建自定义表单。

如何配置自动加载器以在默认的zend类之前加载不同的路径?

1 个答案:

答案 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');