используя пространство имен

Я хочу использовать минимальные возможности 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

Как я могу решить это?

1

Решение

  1. Создайте файл include.php.

      $LibraryPath = "/webroot/php";
    set_include_path(get_include_path() . PATH_SEPARATOR . $LibraryPath);
    ?>
    

* Где $ LibaryPath — это путь к вашей папке php, в которой находится папка phpmailer.

  1. В ваш PhpMailer.php входит

        namespace phpmailer;
    
    class PHPMailer(){
    .....
    }
    ?>
    
  2. В mail.php включите требуемый, чтобы вы могли создать экземпляр phpmailer \ PHPMailer

    require ('include.php');
    
    use phpmailer\PHPMailer;
    

Вы можете добавить больше классов в папку php, и вы можете определить их пространства имен, следуя # 2.

Вы можете вызывать их на новых страницах, включая «include.php» и создавая экземпляр класса.

1

Другие решения

Начните смотреть в композитора. Composer поможет вам использовать один автозагрузчик.

Скачать: Composer

Поместите композитор в папку php.

Посмотри на ЭТОТ

ИЛИ поместите класс в проект php.

Вам нужно все это:

require_once('class.pop3.php');
require_once('class.phpmailer.php');
require_once('class.smtp.php');
require_once('PHPMailerAutoload.php');

PHPMailer Github ссылка

0

PhpMailer, похоже, не находится в пространстве имен.

включите phpmailer / PHPMailerAutoload.php и используйте \ PHPMailer:

<?php
require 'phpmailer/PHPMailerAutoload.php' ;
use \PHPMailer ;
0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector