Zend Framework 2模型架构

vin*_*a87 3 php zend-framework2

为了使我的疑问清楚,我有这样的场景:

我有一个销售汽车和房屋的应用程序(只是一个例子!),所以我创建了一个模块来显示所有汽车,称为汽车,还有一个显示所有房屋,称为房屋.

我有一个Manager模块,应该有一个汽车和房屋的CRUD系统.

我应该把我的模型放在哪里用于汽车和房屋?我应该创建一个模块来放置我的模型,就像Main模块一样?或者我应该将我的模型放在汽车房屋模块中并在Manager模块中访问它们?

假设我CarModel使用方法select,insertdelete创建了一个.如果我把这个模型放在Cars模块中我会遇到安全问题,因为Cars现在可以访问插入删除方法了...

另一方面,我可以使用select方法创建一个CarModel内部Cars模块,然后在模块中再次创建一个带插入删除的模块,但这将很难维护代码...CarModelManager

解决这个问题的最佳方法是什么?

Eva*_*Pro 15

因此,要在高层次上回答您的问题,您可以通过两种方式在您给出的上下文中分解模块:

这两种方法都不对或错.这实际上取决于您的偏好以及您希望如何分解应用程序的功能.例如,您是否想要在没有管理/ CRUD系统的情况下构建一个可以使用Houses或Car模块的站点?

在更技术层面上,有几种方法可以使用Zend\Db处理"模型"或"实体".两种常见的模式是TableGateway模式和Data Mapper模式.

我将借此机会挑逗Rob Allen和我在PHPNW12上提供的ZF2教程中的几张幻灯片,并将在几周后再次在ZendCon给出:

表网关http://evan.pro/caps/2ddbaf.png 表网关选择http://evan.pro/caps/0904b8.png AbstractDbMapper http://evan.pro/caps/a31480.png 映射器选择http:/ /evan.pro/caps/a2a04f.png 摘要http://evan.pro/caps/3ec9e6.png