我正在尝试从命名空间加载一整套类。这些只是实用程序类,我不想将它们视为动作帮助程序,查看帮助程序或任何类型的插件(由于文档,我的工作非常好。)
我有类似Zend的目录结构,例如,一个名为Resources_Employee_Salary的类存储在library / Resources / Employee / Salary.php下。
现在,当我在我的动作控制器中时,我想创建一个Resources_Employee_Salary的实例,但我不能,因为它无法找到该类。
我需要做些什么才能让Zend一劳永逸地加载Resources / *下的类?我查看了Zend_Loader但是有方法要求特定的文件或类,我想加载整个目录。
任何帮助将不胜感激。
谢谢,
答案 0 :(得分:2)
您需要恰当地命名您的课程......
Path: library/Resources/Employee/Salary.php
Class: Resources_Employee_Salary
然后,您需要使用自动加载器注册命名空间......
$autoloader = Zend_Loader_Autoloader::getInstance();
$autoloader->registerNamespace('Resources_');
当然你也可以在你的项目配置文件中指定这个,所以你不必手动完成...在XML格式中这看起来像(不确定ini格式,如果那是你喜欢的...):< / p>
<?xml version="1.0" encoding="UTF-8"?>
<application xmlns:zf="http://framework.zend.com/xml/zend-config-xml/1.0/">
<production>
<autoloaderNamespaces>
<resources value="Resources_" />
</autoloaderNamespaces>
</production>
</application>