为了澄清我的疑虑,我有这样的设想:
我有一个销售汽车和房屋的应用程序(只是一个例子!),所以我创建了一个模块来显示所有的汽车,名为 cars ,还有一个用于显示所有房屋的模块,名为 houses 。
我有一个管理器模块,应该有一个CRUD系统的汽车和房屋。
我应该把我的汽车和房子的模型放在哪里?我应该创建一个模块来放置我的模型,比如一个Main模块?或者我应该把我的模型放在、Cars、和 them 模块中,并在Manager模块中访问它们。
假设我使用select、insert和delete方法创建CarModel。如果我把这个模型放在Cars模块中,我可能会遇到安全问题,因为Cars现在可以访问插入和删除方法.
另一方面,我可以只使用select方法在Cars模块中创建一个Cars,然后在Manager模块中再次创建一个带有插入和删除的CarModel,但是这将使代码的维护变得非常困难。
解决这个问题最好的办法是什么?
发布于 2012-10-15 06:43:20
因此,要想在高层次上回答你的问题,有两种方法可以在你给出的上下文中分解你的模块:
这两种方法都是错误的或正确的。这实际上取决于您的偏好和您想要如何分解您的应用程序的功能。例如,如果没有管理/ CRUD系统,你会想要建立一个使用房屋或汽车模块的网站吗?
在更技术性的层面上,有几种方法可以使用Zend\Db处理“模型”或“实体”。两个常见的模式是TableGateway模式和数据映射器模式。
我将借此机会取笑ZF2教程中的几张幻灯片,这些幻灯片是罗伯·艾伦和我在PHPNW12提供的,也将是几周后在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
https://stackoverflow.com/questions/12879787
复制相似问题