1

假设我有一堆“电子邮件”功能——比如用户注册确认或密码恢复电子邮件,或通知更新电子邮件。我可以在哪里“放置”这些功能?我最初的想法是简单地将它们保存在控制器中,但我宁愿有一个共同的地方。然后我的想法是创建一个专门用于电子邮件的新控制器,但这打破了 MVC 模式,我的最后一个想法是扩展 email_helper.php 助手,但如果我这样做,我不能做类似的事情

$this->email->to($email);

因为我收到一条错误消息

Fatal error: Using $this when not in object context in /Applications/XAMPP/xamppfiles/htdocs/elluminate/system/helpers/email_helper.php on line 71

4

1 回答 1

3

您正在尝试$this在静态方法或简单函数中使用。$this仅当您有对象时,该变量才可用。


在 MVC 和受 MVC 启发的设计模式的上下文中,邮件系统本身将被视为一种服务。服务是模型层的“上层”部分,由控制器和视图用于与模型层交互。它们有助于将域业务逻辑与表示层(控制器、视图、模板)隔离开来。

服务可以独立于其他模型结构(例如邮件系统),也可以管理域对象和不同存储抽象(数据映射器存储库工作单元和/或数据访问对象)之间的交互。

于 2012-09-23T20:27:50.523 回答