gpt4 book ai didi

没有 Composer 的 PHPMailer 安装

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:57:28 25 4
gpt4 key购买 nike

请原谅我的无知。我正在尝试在 Linux 上的 PHP 5.6 下安装 PHPMailer 6.0.1。我的 PHP 安装是远程的,我通过 FTP 管理我所有网站的 PHP(我通常将软件包下载为 .zips 到 Win 10,解压缩,然后将结果通过 FTP 传输到我的网站空间)。

在安装 PHPMailer 的各种方法中,Composer 是首选,但这是我失败的地方。 Composer 说明似乎都不适合这种工作方式——安装程序要我“选择要使用的命令行 PHP”,但我本地没有 PHP ...恼人的是,我看到安装了 PHPMailer 的 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;

对于“use”语句,我得到一个语法错误unexpected 'use' (T_USE) …没有它们,我就只能尝试实例化:$mail = 新的 PHPMailer;但这失败了,没有找到“class 'PHPMailer'”

请问我做错了什么,我怎样才能做得更好?

最佳答案

这不是 PHPMailer 所特有的——它是您使用任何使用 namespace 的无数 PHP 包所需要做的。关于如何使用 use 的 PHP 文档是 here .

简短的版本是,你需要在任何其他脚本之前放置 namespaceuse 指令,所以如果你只是颠倒命令的顺序,它应该可以工作:

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

顺便说一下,这是 PHPMailer 自述文件中的示例和 PHPMailer 提供的所有其他示例中使用的顺序。你可能会发现 the upgrade guide也很有用。

PHPMailerAutoload.php 文件不再存在 - composer 的自动加载器做得更好。 PHPMailer 自带的 composer.json 文件是用来解决你应用自带的 composer 文件的依赖和标记兼容性需求的,也就是说,它是用来告诉你项目的 composer 文件如何使用 PHPMailer——但不是你项目的composer 文件本身——你加载的每个包都有自己的。

在没有本地 PHP 实例的情况下进行开发是一项艰巨的工作——我们应该说,在您的实时服务器上进行开发是“令人沮丧的”!如果您无法直接安装 PHP,请使用 Docker、VirtualBox 或类似 XAMPP 的完全独立的工具在容器或 VM 中运行它。

关于没有 Composer 的 PHPMailer 安装,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46247149/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com