Установка PHPMailer без Composer

Пожалуйста, простите мое невежество. Я пытаюсь установить PHPMailer 6.0.1 под PHP 5.6 на Linux. Моя установка PHP удалена, и я управляю всеми PHP-серверами своих сайтов через FTP (я обычно загружаю пакеты как .zips в Win 10, распаковываю, а затем FTP-результат в мое веб-пространство).

Из различных способов установки PHPMailer предпочтительнее использовать Composer, но именно здесь я отклеиваюсь. Ни один из инструкций Composer не подходит для этого способа работы – установщик хочет, чтобы я был в «Выбор командной строки PHP, который вы хотите использовать», но у меня нет PHP локально … Раздражающе, я вижу композитор PHPMailer's composer.json установленный файл, ожидающий использования. Но нет PHPMailerAutoload.php (это создано Composer?)

Поэтому я пытаюсь выполнить ручную установку PHPMailer. Я загружаю, распаковываю и загружаю файлы FTP в мои веб-пространства в папке PHPMailer. Затем я вставляю следующее во главе моего PHP-кода и вне любых функций:

require_once 'PHPMailer/src/PHPMailer.php'; require_once 'PHPMailer/src/SMTP.php'; use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\SMTP; use PHPMailer\PHPMailer\Exception; 

С помощью «использования» я получаю синтаксическую ошибку неожиданное «использование» (T_USE) … Без них я добираюсь до попытки создания экземпляра: $ mail = new PHPMailer; но это терпит неудачу с «class» PHPMailer »не найден

Что, пожалуйста, я делаю неправильно, и как я могу сделать лучше?

Это не относится к PHPMailer – это просто то, что вам нужно для решения любого из множества пакетов PHP, использующих пространства имен. Документы PHP о том, как использовать use приведены здесь .

Короче говоря, вам нужно поставить namespace и use директивы перед любыми другими сценариями, поэтому, если вы просто измените порядок своих команд, он должен работать:

 use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\SMTP; use PHPMailer\PHPMailer\Exception; require_once 'PHPMailer/src/PHPMailer.php'; require_once 'PHPMailer/src/SMTP.php'; 

Кстати, это пример, используемый приложением в readme и во всех других примерах, предоставляемых PHPMailer. Вы также можете найти руководство по обновлению .

Файл PHPMailerAutoload.php больше не существует – автозагрузчик композитора выполняет гораздо лучшую работу. Собственный файл composer.json PHPMailer используется для разрешения зависимостей и требований совместимости флагов для собственного композиционного файла вашего приложения, то есть он используется, чтобы сообщить файлу-композитору вашего проекта, как использовать PHPMailer, – но это не сам файл композитора вашего проекта – каждый пакет, который вы загрузка будет иметь свои собственные.

Разработка без локального экземпляра PHP – это тяжелая работа – разработка на вашем живом сервере, скажем так, «обескуражена»! Если вы не можете установить PHP напрямую, запустите его в виртуальной машине с помощью VirtualBox или что-то вроде XAMPP, полностью автономного.

Измените требуемый запрос и попробуйте установить как вики PHPMailer:

 <?php require 'PHPMailerAutoload.php'; $mail = new PHPMailer; 

Ссылка на wiki

 In version 6.02, each of the phpmailer modueles contain the namespace `PHPMailer\PHPMailer` declaration so the following works (no autoloader needed but this routine should be in `/src` folder): include($_SERVER['DOCUMENT_ROOT'].'/path_setup.php'); require_once ($_SERVER['DOCUMENT_ROOT'].'/php/PHPMailer/src/PHPMailer.php'); require_once ($_SERVER['DOCUMENT_ROOT'].'/php/PHPMailer/src/SMTP.php'); require_once ($_SERVER['DOCUMENT_ROOT'].'/php/PHPMailer/src/Exception.php'); use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\SMTP; use PHPMailer\PHPMailer\Exception; $mail = new PHPMailer(true);