Я пытаюсь вызвать свою библиотеку Phpmailer в контроллере. Я знаю, что для выполнения этой задачи существует библиотека фреймворка, однако я все же предпочитаю PHPMailer. Я следовал руководству по интеграции библиотеки в фреймворк в версии 3.0.0, очевидно, что это вызвало бы некоторый конфликт. Как вызвать мою библиотеку PHPMailer в Codeigniter 4.0.0?
Учебное пособие: https://www.codexworld.com/codeigniter-send-email-using-phpmailer-gmail-smtp/
Моя библиотека:
<?php
namespace App\Libraries;
use CodeIgniter\Libraries;
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
defined('BASEPATH') or exit('No direct script access allowed');
class Phpmailer {
public function load(){
require_once APPPATH.'ThirdParty/PHPMailer/Exception.php';
require_once APPPATH.'ThirdParty/PHPMailer/PHPMailer.php';
require_once APPPATH.'ThirdParty/PHPMailer/SMTP.php';
$mail = new PHPMailer;
return $mail;
}
}
Мой контроллер:
<?php
namespace App\Controllers;
use CodeIgniter\Controller;
use App\Libraries\Phpmailer;
class Retrieve{
public function send($email){
$this->load->library('phpmailer'); //line 10
$mail = $this->phpmailer->load();
// SMTP configuration
[...]
}
}
Здесь функция получения описания изображения вызывается другим методом, поэтому она работает. Проблема в том, что моя библиотека не загружается. Я получаю следующую ошибку:
ErrorException
Неопределенное свойство: App_Controllers_Retrieve: $load
APPPATH/Controllers_Retrieve.php : 10 - CodeIgniter_Debug_Exceptions-›errorHandler
[1]: https://i.stack.imgur.com/O49B7.png
[2]: https://i.stack.imgur.com/xUUIQ.png