Я пытаюсь обдумать, когда использовать пользовательские библиотеки против пользовательских помощников против обычных старых контроллеров в Codeigniter. Насколько я понимаю, пользовательский помощник должен больше походить на маленькие функции для выполнения простых повторяющихся задач, где библиотека может быть полноценным классом.
В качестве примера я хочу использовать собственный класс электронной почты в CI, но я думаю, что я буду использовать это на множестве различных контроллеров и хочу, чтобы он был максимально «СУХИМ». Имеет ли смысл абстрагировать код для отправки электронного письма помощнику или библиотеке? или мне просто повторить это в нужных контроллерах? У меня также есть базовый контроллер. Может быть, я должен разместить код там? Он будет использоваться достаточно часто, чтобы быть повторяющимся, но не каждый контроллер использует его.
В соответствии с документацией, повторяющийся код, который я хотел бы резюмировать, был бы похож на следующее:
Это мой код ниже
$this->load->library('email');
$this->email->from('[email protected]', 'Your Name');
$this->email->to('[email protected]');
$this->email->cc('[email protected]');
$this->email->bcc('[email protected]');
$this->email->subject('Email Test');
$this->email->message('Testing the email class.');
$this->email->send();
Я буду использовать шаблоны электронной почты и передавать $data
массив в шаблон.
Я бы предложил helper
метод будет отлично работать для вас. Просто добавьте custom
помощник в вашем autoload.php
как это :
$autoload['helper'] = array('custom');
И добавить send_email()
такой метод
function send_email()
{
$ci = & get_instance();
$ci->load->library('email');
$ci->email->from('[email protected]', 'Your Name');
$ci->email->to('[email protected]');
$ci->email->cc('[email protected]');
$ci->email->bcc('[email protected]');
$ci->email->subject('Email Test');
$ci->email->message('Testing the email class.');
$ci->email->send();
}
Для большего : https://www.codeigniter.com/user_guide/general/helpers.html
Других решений пока нет …