1

我认为 Zend 中内置了自动加载功能,因此如果您尝试实例化一个类,它将使用类名来尝试查找该类的文件所在的位置。

我希望能够使用自动加载器在我的应用程序的根目录中加载 DTO 目录。我以为我可以为文件 /application/dtos/myClass.php 执行类似 Application_DTO_MyClass 的操作

我试过用谷歌搜索它,但没有发现任何有用的东西。关于最好的方法的任何提示?

4

1 回答 1

1

这里有几个选项可供您选择,具体取决于您是要在 Application/Models 的子目录中创建模型还是在您自己的“命名空间”中创建它们作为库的子目录。我假设您正在使用Zend Framework 的推荐目录结构

在 Application/Models 的子目录中创建模型,首先创建你的目录;在您的情况下 Application/Models/Dto 将是我的建议。

在该目录中创建 Myclass.php,其中包含:-

class Application_Model_Dto_Myclass
{
    public function __construct()
    {
        //class stuff
    }
}

您将因此实例化它:-

$myObject = new Application_Model_Dto_Myclass();

如果您想在自己的“命名空间”中创建类作为库的子目录,则首先创建目录 library/Dto,然后再次创建文件 Myclass.php,如下所示:-

class Dto_Myclass
{
    public function __construct()
    {
        //class stuff
    }
}

您必须注册此“命名空间”;我建议在您的 application.ini 中添加以下行:

autoloadernamespaces[] = "Dto_"

您将因此实例化此类:-

$myObject = new Dto_Myclass();

我不确定为什么您无法通过 google 找到它,但您会在Zend Framework Programmers' Reference Guide中找到所有这些以及更多内容。我还发现 ZF 代码是了解其工作原理的绝佳资源。

于 2012-03-16T22:54:27.790 回答