Php Zend框架2模型体系结构

Php Zend框架2模型体系结构,php,zend-framework2,Php,Zend Framework2,为了澄清我的疑问,我有以下情况: 我有一个出售汽车和房屋的应用程序(仅举一个例子!),因此我创建了一个模块来显示所有的汽车,称为汽车,还有一个模块来显示所有的房屋,称为房屋 我有一个管理器模块,应该有一个用于汽车和房屋的CRUD系统 我应该把汽车和房子的模型放在哪里?我应该创建一个模块来放置我的模型,比如Main模块?或者我应该将我的模型放在汽车和房屋模块中,然后在管理器模块中访问它们 假设我使用select、insert和delete方法创建了一个CarModel。如果我把这个模型放在Cars

为了澄清我的疑问,我有以下情况:

我有一个出售汽车和房屋的应用程序(仅举一个例子!),因此我创建了一个模块来显示所有的汽车,称为汽车,还有一个模块来显示所有的房屋,称为房屋

我有一个管理器模块,应该有一个用于汽车和房屋的CRUD系统

我应该把汽车和房子的模型放在哪里?我应该创建一个模块来放置我的模型,比如
Main
模块?或者我应该将我的模型放在汽车房屋模块中,然后在管理器模块中访问它们

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

另一方面,我可以仅使用select方法在
Cars
内部创建
CarModel
模块,然后使用
Manager
模块中的insert和delete再次创建
CarModel
,但这将使代码的维护变得非常困难


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

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

  • 一体式模块(将admin/CRUD与提供实体和前端内容的实际模块结合起来)。我的一位开发人员在本模块中采用了这种方法:
  • 单独的模块。例如,不提供用户管理,但使用ZfcUser中的实体/映射器,并提供额外的用户管理功能
这两种方法都不对。这实际上取决于您的偏好以及您希望如何分解应用程序的功能。例如,您是否曾经希望建立一个使用房屋或汽车模块而不使用管理/CRUD系统的站点

在技术层面上,有几种方法可以使用Zend\Db处理“模型”或“实体”。两种常见的模式是模式和模式

  • 表格网关:我在博客上写过这个:

  • 数据映射器:这是我首选的解决方案。我还没有写过关于这个的博客,但是你可以在中找到一个使用示例。此外,基本数据映射器并不像Gatway表那样内置在ZF2中,但它是一种更灵活的解决方案。查看由提供的

我将借此机会梳理一下ZF2教程中的几张幻灯片,这些幻灯片是我在PHPNW12上提供的,也将是:


我唯一能做的就是把你介绍给伟大的瓦斯科海特!这是非常有用的,让我明白了!但我仍然有一个问题,在如何组织模型元素的财政…太好了,埃文!非常感谢你!我想我会选择All-in-one方法并创建一个管理模块来路由CRUD函数。我找到了这个,也许它能帮我。我将安装这些模块ZfcUser和ZfcUserAdmin来研究它们。你有没有链接让我可以找到更多关于这个AbstractDbMapper的信息?特克斯!