2013-06-03 36 views
0

我正在开发一个非常大的项目。我目前正在研究的方面要求电子邮件模板在被另一用户添加到学习课程时发送给用户。CakePHP元素视图中的控制器逻辑

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

我接管了这个项目,并且我对一半事情的完成方式并不满意,但是时间成本决定了我宁愿随之而去。

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

这里的问题:

  1. 我应该保持逻辑控制器或者你认为它是安全的把它移到元素视图的.ctp文件?

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

干杯

+0

控制器应该具有的唯一逻辑是:将输入传递给模型层(并且在极少数情况下 - 查看实例)。如果您的控制器执行其他任何操作,则不会有MVC。 –

+0

我之前做过类似的方法,但不同的是我创建了TemplateComponent来处理所有的解析。 –

回答

0

这是一个非常重要的问题 - 什么是你使用完全相同的邮件? old email component或新的CakeEmail class?你使用哪个CakePHP核心版本?

这里有一些似是而非的说法。您可以:

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