代码之家  ›  专栏  ›  技术社区  ›  AlexA

Zend框架:控制器类==页?

  •  4
  • AlexA  · 技术社区  · 16 年前

    我是否认为在Zend框架中,如果我计划在我的站点上有5个页面,我通常需要5个控制器?ZF开发人员是否通常每页创建一个控制器(“页面”作为abtract应用程序单元)?

    我之所以这样问,是因为之前出于某种原因,我在控制器中填充了许多不同的操作,以便它们扮演页面的角色,例如索引/添加、索引/查看、索引/删除和显示各种小屏幕,例如小CRUD屏幕,而不是索引操作显示的网格。

    但到目前为止,我想检查一下我的新理解,即操作主要是模型更新所需的,一旦运行,操作应该立即重定向回控制器/索引。因此,似乎视图应该主要用于索引操作,而在其他操作中使用的频率较低。

    这听起来在架构上有效吗?

    3 回复  |  直到 16 年前
        1
  •  3
  •   prodigitalson    16 年前

    我想这是一种方法…使用您的类比,我想我使用一个类似于“部分”的控制器,以及类似于“页面”的操作。

    但这更多的是停留在旧的过程静态页面范式上,因为实际上,操作控制器本身与页面或节的关系并不比您作为开发人员所做的关联多。也就是说,每个页面可能是许多操作和视图的组合,这些操作和视图取决于应用程序的体系结构。

    例如,如果我有一个博客模块,我可能有以下内容:

    控制器:

    • 后控制器
    • 评论控制器

    意见:

    • 邮递
      • 显示(显示单个日志)
      • 列表(列出文章)
      • 编辑(创建/编辑日志)
    • 评论
      • 显示(显示n条注释)
      • 列表(列出注释)
      • 编辑(创建/编辑/中等评论)
      • 嵌入列表(用于日志本身,假设与显示不同)
        2
  •  2
  •   FlorianH    16 年前

    在我看来,一个控制器应该总是将有一个公共用例的多个方法分组。尝试找到描述你的应用功能的“名词”:那些是控制器(而动词是控制器方法)。

    如果你有博客(例如),你可能有:

    • ArticleListController(列出所有 文章,列出前10名,列出 标签的所有文章…)
    • 单篇文章控制器(显示一篇文章,添加注释…)
    • 管理员控制器(允许您编写文章)

    如果您只有5页(如主页、关于、联系等),MVC架构可能不适合您。

        3
  •  1
  •   Corey Ballou    16 年前

    指数作用 只是给定控制器的默认操作,用于显示默认视图(与显示子目录的index.html或index.php页面相同)。

    可以完全接受在每个控制器的基础上创建各种不同的操作,每个操作可能有自己的视图,也可能没有自己的视图。( 添加和编辑)。控制器旨在对类似动作进行分组。

    例如,使用方法请参考 Zend_Controller_Action . 您可能还会发现熟悉 Zend_Controller .

    推荐文章