【问题标题】:Controller logic in Element View in CakePHPCakePHP 中元素视图中的控制器逻辑
【发布时间】:2013-06-03 06:43:10
【问题描述】:

我正在做一个非常大的项目。我目前正在处理的方面要求在将电子邮件模板添加到其他用户的学习课程中时将其发送给用户。

处理请求的控制器执行一系列 str_replace 任务来查找文本中的变量(用户可以在将另一个用户添加到学习课程之前对其进行编辑),然后将其替换为数据库中的一些值。

我接手了这个项目,但我对完成一半事情的方式并不满意,但时间成本决定了我宁愿顺其自然。

电子邮件是使用 Cake 的原生电子邮件功能发送的。它使用模板来捕获数据并发送给用户。

问题来了:

  1. 我应该将逻辑保留在控制器中还是您认为将其移动到元素视图的 .ctp 文件中是否安全?

我的第一反应是按照通常的 MVC 分离理想将它留在控制器中。

干杯

【问题讨论】:

  • 控制器应该具备的唯一逻辑是:将输入传递给模型层(在极少数情况下 - 以查看实例)。如果您的控制器执行其他任何操作,则没有 MVC。
  • 我之前也做过类似的方法,但不同的是我创建了 TemplateComponent 来处理所有的解析。

标签: cakephp model-view-controller controller


【解决方案1】:

这是一个非常重要的问题 - 您究竟在使用什么来发送电子邮件? old email component 还是新的CakeEmail class?您使用的是哪个 CakePHP 核心版本?

这里有一些似是而非的方法。你可以:

  1. 设置所有这些变量,将它们传递给视图并在那里进行所有“替换”。
  2. 将此逻辑封装在一个组件中,将其附加到您的控制器并使用它。
  3. 只需将其保留在控制器内的私有函数中,并在需要时调用该函数。 (不是真正的 MVC)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多