3

我对 ZF 模块和模型的结构有一些疑问。

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

为了使我的问题易于理解,请看以下示例:(我创建这个只是为了学习 ZF2)

电影管理器数据库

这是一个“电影管理器应用程序”。在这个应用程序中,我有 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 在任何地方都找不到答案...如果有人有像这样的小应用程序并且您不介意分享,我会很高兴。

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

谢谢您的帮助。

4

2 回答 2

2

这里看到的是一个数据库模型,因此对我来说主要问题是如何管理数据。在 MVC 模式中,您使用模型管理数据。据我所知,您的问题不应与 ZF2 相关或仅限于 ZF2。与早期版本一样,您应该拥有管理数据库和数据表的模型。

这些模块将处理应用程序方面。当您拥有数据(人物、类型、用户、电影)的可靠模型时,您可以创建数十个访问模型的模块。因此,您可以拥有大量用于不同目的的模块,但始终使用相同的模型。

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

于 2012-02-17T21:22:32.140 回答
1

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

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

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

于 2012-05-01T16:24:44.450 回答