【问题标题】:When to use Component or Model in CakePhp何时在 CakePhp 中使用组件或模型
【发布时间】:2012-04-23 22:06:10
【问题描述】:

有时我很难在组件控制器中添加一段代码还是在 CakePhp 框架中添加模型之间做出选择。该代码块不处理数据库中的条目,但它仍然与某个模型相关。这里的最佳做法是什么?

谢谢

叶希亚·萨拉姆

【问题讨论】:

  • 没有一段真正的代码(你在这里谈论的一些例子)很难解决这个问题。更具体一点对于“真正的”问题和适当的答案至关重要。

标签: cakephp cakephp-2.0


【解决方案1】:

好吧,我给你举几个例子

  • 任何数据处理都应该在模型中进行。 (获取数据、计算、转换、保存...)
  • 处理请求和响应的东西通常进入组件(如身份验证)
  • 处理数据的可重用代码应该成为一种行为(如 slug 或标签,请参阅 cakedc 插件)
  • 在输出中执行重复任务的代码将进入帮助程序(recaptcha 帮助程序)

如果你开始阅读the book,第一页已经开始描述控制器、模型和视图之间的基本区别。:

  • 控制器处理请求,并帮助协调和准备客户端的响应。阅读有关控制器的更多信息

  • 视图是 CakePHP 中的表示层。他们将从模型中获取的数据转换为客户端请求的输出格式。阅读有关视图的更多信息

  • 模型是应用程序的核心,它们处理数据的验证、存储和检索。阅读有关模型的更多信息

了解MVC pattern 也有帮助。

有关涉及组件、行为和助手的示例,请查看 CakeDC recaptcha plugin

【讨论】:

  • 这些是很好的术语,你总是试图遵循它们,但让我说整个 MVC 是理想的。在现实生活实践中,有时在控制器中解决问题比在模型中更方便并且需要更少的代码(有时应用程序的速度更好)。我通常使用模型作为存储设施,并且在使用模型回调时存在一般处理问题是最好的。但有时多个控制器需要使用相同的模型并根据用户输入计算和准备数据。在这种情况下,我通常在控制器中执行此操作。每个案例都需要您的决定。
猜你喜欢
  • 2012-04-04
  • 1970-01-01
  • 2010-09-23
  • 1970-01-01
  • 2012-04-12
  • 2023-03-05
  • 2015-08-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多