【发布时间】:2018-12-16 01:41:50
【问题描述】:
我的任务是将当前实现的 PHPMailer 版本 5.2.4 类升级到这些类的最新稳定版本,用于从 PHP 5.6 迁移到 PHP 7.2 的电子商务 Web 应用程序。
该站点多年来一直使用 PHPMailer 版本 5.2.4 及其相关类而不使用 Composer 来生成通过第 3 方 SMTP 电子邮件提供商发送的交易电子邮件。
我想将 PHPMailer 5.2.4 类升级到最新的稳定版本,并继续使用代码中的类而不通过 Composer 部署它们。
我知道从 PHPMailer 6.0 版开始,需要将命名空间添加到代码中。
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
use PHPMailer\PHPMailer\SMTP;
require 'src/Exception.php';
require 'src/PHPMailer.php';
require 'src/SMTP.php';
我去了GitHub上的PHPMailer项目,从GitHub Master Branch下载了以下文件:
https://github.com/PHPMailer/PHPMailer/tree/master/src
src/PHPMailer.php
src/Exception.php
src/SMTP.php
我在使用这些类的现有代码中添加了必要的命名空间;我还更新了我现有的异常处理代码,该代码以前捕获 phpmailerException 类型的异常,现在使用 PHPMailer 异常类命名空间,并且任何现有的异常引用都使用全局命名空间;
...
try {
...
} catch (Exception $e) {
//$e is an instance of PHPMailer\PHPMailer\Exception
echo $e->errorMessage();
} catch (\Exception $e) {
//$e is an instance of the PHP built-in Exception class
echo $e->getMessage();
}
进行这些更新后,一切正常,可以在我运行 PHP 7.2 版的开发环境中生成电子邮件。
我已准备好将更新部署到我网站的生产/实时服务器,并想确认我已使用 PHPMailer 类的最新稳定完整测试版本。
我只是有一个有点愚蠢的问题/担忧:
在不使用 Composer 的情况下使用 PHPMailer 类时,我阅读了几个教程以从 PHPMailer GitHub 项目的 Master Branch src 下载这些类。
不过,我也阅读了一些使用 PHPMailer 6.0 版的教程。另外,我好像记得在某处读到过,master 分支并不能保证是稳定的。
我的问题: 如果我想要这些类的最新稳定完整测试版本,我使用 GitHub Master Branch src 下载 PHPMailer 类以在我的网站中使用是否正确?
或者,我应该使用 GitHub 6.0 Branch src 下载这些类文件吗?
让我更加困惑的是,我发现唯一被特别标记为“稳定”的分支是 GitHub“5.2 稳定”分支,其最新版本是 5.2.27。
关于相关说明,请您在 Master 分支中澄清以下内容:
**src/SMTP.php**
(has const VERSION = '6.0.6';)
**src/Exception.php**
Is there a reason that comments or code in this file does not mention Version 6.0.6?
**src/PHPMailer.php**
Is there a reason that comments or code in this file does not mention Version 6.0.6?
非常感谢您的帮助。
【问题讨论】: