2012-02-17 103 views
3

我对ZF模块和模型的结构有一些疑问。Zend Framework 2上的模块和模型组织

(我说的是ZF 2,因为我放弃了ZF 1.11)

为了使我的问题,简单易懂,看看下面的例子: (我创建这个只是为了学习ZF2)

Movie Manager DataBase

这是一个“电影管理器应用程序”。 在这个应用我有3种用户:

- visitors: peolple who olny can see the movies in the database. 
- members: same as visitors plus insert, update and delete movies. 
- administrator: same as members plus insert, update and delete users and other informations as genre, artist, ... 

会员可以比新电影罢了无法插入,我。即他们不能 插入新的流派,既不是新的艺术家。

确定...对于这个问题,我发现这个解决方案:

- create 3 modules: visitor, member, admin; 

,但我不知道这是否是组织去计划的最佳途径......

我意识到,ZF预计人们组织应用程序是这样的:

- create modules for each funcionallity; 
- create roles for each kind of user; 

所以,我的问题是:

1. My solution is right or wrong? 
2. If my solution is right, how can I organize my application? 
3. How can I organize my models, to be visible to more than one module? 
- I think a should create a model "movie" somewhere if "inserts, updates, deletes, and selects" 
then a module "visitor" could only use a "select" while a module "member" could use all the funcionallities. Am I right? 

4. If my solution is not right, how can I organize my application? 
5. How should be my modules? 

我真的坚持这个问题。 A无法在任何地方找到答案... 如果有人有这样一个小应用程序,你不介意分享,我会很高兴。

如果我不清楚我的问题,请询问!

谢谢你的帮助。

回答

3

在这里看到的是一个数据库模型,因此我的主要问题是如何管理数据。在MVC模式中,您可以使用模型管理数据。尽我所能在这里告诉你的问题不应与ZF2相关或限制。就像在早期版本中一样,您应该有模型来管理数据库和数据表。

模块将处理应用程序方面。当你有一个可靠的数据模型(人物,流派,用户,电影)时,你可以创建数十个访问模型的模块。因此,您可以为不同目的准备很多很多模块,但始终是相同的模型。

你可以有一个模块,只处理用户管理,一个只有管理(添加/更新)电影和另一只列表(读)电影等

1

我认为你可以完成大部分的这一个ZF2模块,可能被称为“MovieManager”。 Movie和Person可以是MovieManager模块名称空间中的模型(即基类和数据库表)。

用户可能是一个单独的模块,用于处理用户身份验证和访问控制。您可以看看Evan Coury在可重复使用的ZF2用户模块上所做的工作:https://github.com/Zf-Commons/ZfcUser或者您可以保持简单,并将用户模型放入MovieManager模块中。

我会使用Zend_Acl来定义允许给定用户执行什么操作。或者,您可以通过在User类中拥有基本的“角色”属性并检查MovieManager控制器中的授权角色来实现这一点。