Php 如何将Zend autoloader配置为在默认路径之前加载资源的自定义路径

Php 如何将Zend autoloader配置为在默认路径之前加载资源的自定义路径,php,zend-framework,zend-autoloader,Php,Zend Framework,Zend Autoloader,分开但与…相关 我希望Zend在为web应用程序加载一组默认表单之前尝试加载自定义表单/视图,以便客户端为其应用程序创建自定义表单 如何配置自动加载程序以在默认zend类之前加载其他路径?与另一个问题一样,您需要使用factory类。此类将在预定义目录中检查是否存在新表单或默认表单 您需要做的就是: // $formname is the parameter passed to the factory class $defaultclassname = "Default_Form_{$formn

分开但与…相关

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


如何配置自动加载程序以在默认zend类之前加载其他路径?

与另一个问题一样,您需要使用factory类。此类将在预定义目录中检查是否存在新表单或默认表单

您需要做的就是:

// $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\u factory.php

然后,在控制器中:

$form = MyLib_Form_Factory::createForm('user');

我仍然不相信工厂类是必要的。Zend_Loader::loadClass按照给定的顺序为要搜索的目录获取第二个参数,但我找不到任何方法将该信息传递给自动加载程序。虽然它不能解决此问题,但我的解决方案是创建第二组视图和表单,扩展默认视图和表单,然后一直加载它们。没有我想要的那么好,但它有它的优点。