Codeigniter使用库或助手使发送电子邮件成为DRY



我正试图弄清楚何时在Codeigniter中使用自定义库与自定义助手,以及仅使用常规旧控制器。据我所知,自定义助手应该更像是完成简单重复任务的小函数,而库可以是一个完整的类。

例如,我想在CI中使用本机电子邮件类,但我想我会在各种不同的控制器中使用它,并希望它尽可能"DRY"。将代码抽象化以将电子邮件发送到助手或库中有意义吗?还是我应该在需要的控制器中重复一遍?我还有一个基本控制器。也许我应该把代码放在那里?它的使用频率会足够高,可以重复使用,但并不是每个控制器都在使用它

根据文档,我希望抽象的重复代码将类似于以下内容:

这是我在下面的代码

$this->load->library('email');
$this->email->from('your@example.com', 'Your Name');
$this->email->to('someone@example.com');
$this->email->cc('another@another-example.com');
$this->email->bcc('them@their-example.com');
$this->email->subject('Email Test');
$this->email->message('Testing the email class.');
$this->email->send();

我将使用电子邮件模板,并向模板传递$data数组。

我建议helper方法非常适合您。只需在autoload.php中添加一个custom助手,如下所示:

$autoload['helper'] = array('custom'); 

并添加类似的send_email()方法

function send_email() 
{
$ci = & get_instance();
$ci->load->library('email');
$ci->email->from('your@example.com', 'Your Name');
$ci->email->to('someone@example.com');
$ci->email->cc('another@another-example.com');
$ci->email->bcc('them@their-example.com');
$ci->email->subject('Email Test');
$ci->email->message('Testing the email class.');
$ci->email->send();
}

更多信息:https://www.codeigniter.com/user_guide/general/helpers.html

相关内容

  • 没有找到相关文章

最新更新