Я хочу использовать минимальные возможности phpmailer
, это моя структура папок:
webroot/
- php/
- mail.php
- phpmailer/
- PHPMailer.php
в моем mail.php
Я хочу использовать пространство имен:
<?php
use PHPMailer\PHPMailer;
$mail = new PHPMailer(true);
...
Но я получил ошибку:
Неустранимая ошибка: класс ‘PHPMailer \ PHPMailer’ не найден в
/home/example/public_html/php/mail.php в строке 2
Как я могу решить это?
Создайте файл include.php.
$LibraryPath = "/webroot/php";
set_include_path(get_include_path() . PATH_SEPARATOR . $LibraryPath);
?>
* Где $ LibaryPath — это путь к вашей папке php, в которой находится папка phpmailer.
В ваш PhpMailer.php входит
namespace phpmailer;
class PHPMailer(){
.....
}
?>
В mail.php включите требуемый, чтобы вы могли создать экземпляр phpmailer \ PHPMailer
require ('include.php');
use phpmailer\PHPMailer;
Вы можете добавить больше классов в папку php, и вы можете определить их пространства имен, следуя # 2.
Вы можете вызывать их на новых страницах, включая «include.php» и создавая экземпляр класса.
Начните смотреть в композитора. Composer поможет вам использовать один автозагрузчик.
Поместите композитор в папку php.
Посмотри на ЭТОТ
ИЛИ поместите класс в проект php.
Вам нужно все это:
require_once('class.pop3.php');
require_once('class.phpmailer.php');
require_once('class.smtp.php');
require_once('PHPMailerAutoload.php');
PhpMailer, похоже, не находится в пространстве имен.
включите phpmailer / PHPMailerAutoload.php и используйте \ PHPMailer:
<?php
require 'phpmailer/PHPMailerAutoload.php' ;
use \PHPMailer ;