Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Zend framework2 ZF2目录/命名空间模型对象位置_Zend Framework2 - Fatal编程技术网

Zend framework2 ZF2目录/命名空间模型对象位置

Zend framework2 ZF2目录/命名空间模型对象位置,zend-framework2,Zend Framework2,在目录中,这样的路径会指向包含我的模型类的目录: module/Album/src/Album/Model 我在以下位置创建了另外两个类: module/Album/src/Album/Model/AlbumRelatedClass.php module/Album/src/Album/Model/AlbumRelatedTable.php 我想把这些课程放在 module/Album/src/AlbumRelated/Model/ 出于本测试的目的,我在那里创建了模型类的副本,不幸的是,

在目录中,这样的路径会指向包含我的模型类的目录:

module/Album/src/Album/Model
我在以下位置创建了另外两个类:

module/Album/src/Album/Model/AlbumRelatedClass.php
module/Album/src/Album/Model/AlbumRelatedTable.php
我想把这些课程放在

module/Album/src/AlbumRelated/Model/
出于本测试的目的,我在那里创建了模型类的副本,不幸的是,我的Album模块配置告诉我,它在Album相关位置找不到这些类。我尝试将AlbumRelated位置中的名称空间更改为AlbumRelated\Model,并直接引用类位置(\Album\Model\AlbumRelated()),但没有成功

有人知道我怎么做吗?如果我不该这么做,有人能解释为什么吗?我还想知道为什么文件夹结构是Album/Model/Album(这似乎是多余的,我不清楚教程中的解释)


提供的任何帮助都会很好,谢谢:)

简短的回答是它找不到类,因为您可能没有设置autoloader配置以了解新的“AlbumRelated”命名空间。看看
\Album\Module::getAutoloaderConfig()
中发生了什么。您可能希望向
名称空间添加一个键/值对,如
'AlbumRelated'=>\uuuuuuu DIR\uuuuuuu.'/src/AlbumRelated'
。这将告诉自动加载程序在AlbumRelated命名空间下的何处查找类

也就是说

如果我不该这么做,有人能解释为什么吗

你可能不应该那样做。您有一个名为
\Album
的顶级命名空间。然后在它下面有
\Album\Model
名称空间。任何与专辑有关的模特都应该住在那里。假设您的系统中有一个实体用于记录标签,这样您就可以将相册与发布它的标签相关联。ZF2期望您创建一个名为
\Album\Model\RecordLabel
的类,该类位于
module/Album/src/Album/Model/RecordLabel.php
中。只要我们假设唱片标签主要与相册有关,这一切都是完全有道理的

当然,如果您有很多关于管理RecordLabel的工作流程,您也可以将RecordLabel粘贴到它自己的模块中

我还想知道为什么文件夹结构是Album/Model/Album


我想你指的是Album/src/Album。这种冗余是为了保持一个整洁的设置。因此,第一个相册标识模块,第二个是相册名称空间的顶级。这提供了最大的灵活性,但不是硬性规定。请参阅Rob Allen最近关于探索的博客文章。

感谢您的回复。这是否意味着在module/Album/src/Album附近永远不会有像module/Album/src/AdjacentFolder这样的文件夹?