Во-первых, почему вы используете версию PHPMailer, которая буквально на несколько лет устарела? Получите последнюю версию , в которой есть новые функции, исправлены ошибки и меньше дыр в безопасности.Во время обновления рассмотрите возможность перехода на использование composer для управления вашими зависимостями.
Проблема, с которой вы столкнулись, довольно проста: вы создали подкласс, который добавляет метод subject()
, но ваш экземпляр 'созданный в вашем скрипте исходный класс PHPMailer, а не ваш подкласс.Сделайте это вместо этого:
$mail = new Mail(true);
Присвоение имени вашему классу очень общего имени "Mail" очень вероятно, что принесет вам неожиданный урок о том, почему пространство имен является хорошей идеей, поэтому я рекомендую добавить пространство имен дляВаше приложение, чтобы избежать столкновений имен.
Хотя это хорошая идея для создания подклассов, чтобы легко установить значения по умолчанию, она также приглашает вас проверить учетные данные в вашем репо-источнике, что обычно является плохой идеей.Лучше использовать ваш дочерний класс для чтения этих значений из файла среды («точка env»), используя пакет типа this .