Fatal error: Class 'NexmoMessage' not found

Fatal error: Class 'NexmoMessage' not found

我正在使用 this library 在我的服务器上实施 Nexmo SMS 服务。我需要像这样使用 Composer 的库:

"require" : {
"prawnsalad/nexmo": "dev-master"
}

我发现 here 并按照 README 中包含的说明进行操作,如下所示:

require 'vendor/autoload.php';
use NexmoMessage;
$phone = '123456789';
$sms = new NexmoMessage(NEXMO_KEY, NEXMO_SECRET);//defined in another file
$sms->sendText($phone, 'from', "yo");//$phone is a valid number in actual case

但是我一直在这个问题的标题中收到错误。我看到 Composer 已成功导入库,我看到 NexmoMessage 的 class 和构造函数,但由于某种原因,无论我做什么,这个错误都会发生。我不确定这是由于库问题还是我使用 Composer 的方式引起的。我过去从未遇到过 Composer 的问题,所以我很困惑为什么会发生这种情况。谢谢

好吧,那个库声明它支持 PSR-4,这意味着它们绝对必须使用 PHP 命名空间,但它们没有。 8 个月前的最后一次提交 https://github.com/prawnsalad/Nexmo-PHP-lib/commit/8e422c4f8f43c52acb70ebd5f9e7c6ff81a1f352 破坏了自动加载。直到今天还没有人注意到。

看源码就知道:没有使用命名空间。

您现在最好的行动是解决此问题并发送拉取请求! Github 允许在浏览器中编辑文件!第二个最佳行动是创建一个问题并让作者知道。