从Zend中的库目录加载自定义类

时间:2011-04-04 23:57:12

标签: php zend-framework classloader zend-loader

我正在尝试从命名空间加载一整套类。这些只是实用程序类,我不想将它们视为动作帮助程序,查看帮助程序或任何类型的插件(由于文档,我的工作非常好。)

我有类似Zend的目录结构,例如,一个名为Resources_Employee_Salary的类存储在library / Resources / Employee / Salary.php下。

现在,当我在我的动作控制器中时,我想创建一个Resources_Employee_Salary的实例,但我不能,因为它无法找到该类。

我需要做些什么才能让Zend一劳永逸地加载Resources / *下的类?我查看了Zend_Loader但是有方法要求特定的文件或类,我想加载整个目录。

任何帮助将不胜感激。

谢谢,

1 个答案:

答案 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>