Zend framework Zend自动加载自定义目录?

Zend framework Zend自动加载自定义目录?,zend-framework,zend-autoloader,Zend Framework,Zend Autoloader,我认为自动加载是构建在Zend中的,因此如果您试图实例化一个类,它将使用类名来尝试查找该类的文件所在的位置 我希望能够使用autoloader在应用程序的根目录中加载DTO目录。我想我可以为文件/Application/dtos/MyClass.php执行类似于这个Application\u DTO\u MyClass的操作 我试过用谷歌搜索,但没有发现任何有用的东西。关于最佳方法的任何提示?根据您是想在应用程序/模型的子目录中创建模型,还是想在自己的“名称空间”中作为库的子目录创建模型,这里有

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

我希望能够使用autoloader在应用程序的根目录中加载DTO目录。我想我可以为文件/Application/dtos/MyClass.php执行类似于这个Application\u DTO\u MyClass的操作


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

根据您是想在应用程序/模型的子目录中创建模型,还是想在自己的“名称空间”中作为库的子目录创建模型,这里有几个选项供您选择。我假设您正在使用

要在应用程序/模型的子目录中创建模型,请首先创建目录;在您的情况下,应用程序/型号/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();

我不知道为什么你不能通过谷歌找到这个,但你会在网上找到所有这些和更多。我还发现ZF代码是了解其工作原理的极好资源。

根据您是想在应用程序/模型的子目录中创建模型,还是想在自己的“命名空间”中作为库的子目录创建模型,这里有几个选项供您选择。我假设您正在使用

要在应用程序/模型的子目录中创建模型,请首先创建目录;在您的情况下,应用程序/型号/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();

我不知道为什么你不能通过谷歌找到这个,但你会在网上找到所有这些和更多。我还发现ZF代码是了解其工作原理的极好资源。

为什么要使用
newapplication\u Model\u Myclass()调用它而不是
新的应用程序\u Model\u Dto\u Myclass()哪个是实际的类名?我知道你推荐的作品没有意义。如果在DTO目录中有一个结尾相同的类呢?奇怪的是,它可以处理输入错误,但如果没有它,它仍然说找不到该类。让它工作吧。你说的是对的,我的代码有点不正确。再次感谢!为什么要使用
newapplication\u Model\u Myclass()来调用它而不是
新的应用程序\u Model\u Dto\u Myclass()哪个是实际的类名?我知道你推荐的作品没有意义。如果在DTO目录中有一个结尾相同的类呢?奇怪的是,它可以处理输入错误,但如果没有它,它仍然说找不到该类。让它工作吧。你说的是对的,我的代码有点不正确。再次感谢!