根据行动改变观点是不好的做法吗?

时间:2011-04-06 01:13:01

标签: php model-view-controller zend-framework

我有一个控制器索引,它管理几个非专业的信息页面(例如主页,概述,功能等)。每个页面在控制器中都有自己的操作。根据操作,使用不同的View脚本来呈现内容。

使用不同的View脚本渲染每个动作是不好的做法吗?每个页面都应该有自己的控制器吗?谢谢,

2 个答案:

答案 0 :(得分:3)

这根本不是很糟糕的做法。考虑PHP应用程序常见的不同场景。用户的CRUD(创建,读取,更新,删除)。

所有操作都应该在用户的同一个控制器上。

我通常使用:

  • index - 显示所有用户
  • 添加 - 创建新用户
  • 编辑 - 编辑现有用户
  • 删除 - 删除用户(没有视图只是重定向)。

如果合适,添加和编辑使用相同的视图是有意义的,但添加/编辑不可能与索引共享相同的视图。

答案 1 :(得分:3)

您所描述的实际上是Zend Framework MVC实现的标准最佳实践。这就是Zend Framework'希望'你这样做的方式!你为什么害怕这可能是不好的做法?

第二种方式......

  

每个页面都应该有自己的控制器吗?

不,但不要从页面方向开始思考,请考虑功能单元。例如,如果您的网页需要用户管理,则很可能会有userController

此控制器需要实现的功能是什么?

  • 添加用户
  • 删除用户,
  • 让用户编辑他们的数据,
  • 让用户选择朋友,

因此,这些函数中的每一个都成为userController中的一个动作(function = method = action)。

这样,您也可以自动获得易于阅读的网址。最后,每个操作都有一个.phtml视图脚本,其中包含该操作所需的标记。