Php 根据操作更改视图是否是一种不好的做法?
我有一个单独的控制器,索引,它管理几个非专门的信息页面(例如主页、概述、功能等)。每个页面在控制器中都有自己的操作。根据操作的不同,将使用不同的视图脚本渲染内容Php 根据操作更改视图是否是一种不好的做法?,php,model-view-controller,zend-framework,Php,Model View Controller,Zend Framework,我有一个单独的控制器,索引,它管理几个非专门的信息页面(例如主页、概述、功能等)。每个页面在控制器中都有自己的操作。根据操作的不同,将使用不同的视图脚本渲染内容 使用不同的视图脚本渲染每个动作是否是一种不好的做法?每个页面都应该有自己的控制器吗?谢谢,这根本不是坏习惯。考虑PHP应用程序常见的不同场景。用户的CRUD(创建、读取、更新、删除) 对于用户,所有操作都应该在同一个控制器上 我通常使用: 索引-显示所有用户 添加-创建新用户 编辑-编辑现有用户 删除-删除用户(没有视图,只是重定向)
使用不同的视图脚本渲染每个动作是否是一种不好的做法?每个页面都应该有自己的控制器吗?谢谢,这根本不是坏习惯。考虑PHP应用程序常见的不同场景。用户的CRUD(创建、读取、更新、删除) 对于用户,所有操作都应该在同一个控制器上 我通常使用:
- 索引-显示所有用户
- 添加-创建新用户
- 编辑-编辑现有用户
- 删除-删除用户(没有视图,只是重定向)
如果合适,add和edit可以使用相同的视图,但是add/edit不可能与index共享相同的视图。您所描述的实际上是Zend Framework MVC实现的标准最佳实践。这就是Zend Framework“希望”您这样做的方式!你为什么担心这可能是一个坏习惯 你的第二种提问方式 每个页面都应该有自己的控制器吗 不,但不要从页面的方向开始思考,而是从功能单元的角度思考。例如,如果您的页面需要用户管理,您很可能会有一个
用户控制器
该控制器需要实现哪些功能
- 添加用户
- 删除用户
- 让用户编辑他们的数据
- 让用户选择朋友
- 等等
这样,您也将自动拥有易于阅读的URL。最后,每个操作都有一个.phtml视图脚本,其中包含该操作所需的标记。请阅读
Zend_Layout
和Zend_view_Helpers
,如果您害怕的话,您几乎不必在多个视图文件上复制内容。谢谢,这非常有意义。我只是担心这样构造我的应用程序会让自己失败。