0

我正在尝试从命名空间加载一整套类。这些只是实用程序类,我不想将它们视为操作助手、视图助手或任何类型的插件(感谢这些文档,我让它们工作得很好)。

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

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

我必须做什么才能让 Zend 一次性加载 Resources/* 下的类?我查看了 Zend_Loader,但它具有要求特定文件或类的方法,我想加载整个目录。

任何帮助将不胜感激。

谢谢,

4

1 回答 1

2

您需要适当地命名您的课程......

Path: library/Resources/Employee/Salary.php
Class: Resources_Employee_Salary

然后你需要用自动加载器注册你的命名空间......

$autoloader = Zend_Loader_Autoloader::getInstance();
$autoloader->registerNamespace('Resources_');

当然,您也可以在您的项目配置文件中指定它,这样您就不必手动执行它......在 XML 格式中,这看起来像(如果你喜欢的话,不确定 ini 格式......):

<?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>
于 2011-04-05T00:01:25.797 回答