我一直在使用 Rachet WebSockets 并创建了一个简单的聊天应用程序。该示例使用 WebSocket 命名空间。这是我第一次使用命名空间。现在我正在尝试添加 Twilio 服务,但似乎可以将 Twilio 添加到我的命名空间。
我知道它是在 autoload_files.php 中自动加载的
<?php
// autoload_files.php @generated by Composer
$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);
return array(
$vendorDir . '/twilio/sdk/Services/Twilio.php',
);
在composer.json文件中
{
"autoload": {
"psr-0": {
"Websocket": "src"
}
},
"require": {
"cboden/ratchet": "^0.3.3",
"twilio/sdk": "^4.5"
}
}
我按照该网站的步骤进行操作:https://www.twilio.com/docs/libraries/php#using-without-composer
我在类的方法中调用 twilio,如下所示:
$AccountSid = "xxxxxxxxxxxxxxxxx";
$AuthToken = "xxxxxxxxxxxxxxxxx";
$client = new Client($sid, $token);
$message = $client->account->messages->create(array(
'To' => "+555555555",
'From' => "+555555555",
'Body' => "This is a test",
));
不断出现此错误:
Uncaught Error: Class 'Websocket\Client' not found in ......
我对作曲家和命名空间非常陌生,希望这是足够的信息来帮助我。
我必须更新 Twilio,
跑
composer require twilio/sd
- Removing twilio/sdk (4.12.0)
- Installing twilio/sdk (5.4.1)
Downloading: 100%
现在我可以
use Twilio\Rest\Client;
因为它之前丢失了。
使用命名空间时,PHP 将始终开始寻找当前类中没有以自己的命名空间为前缀的类。
在你的情况下,当前命名空间是
Websocket
,因此PHP正在尝试自动加载类Websocket\Client
,为了防止这种情况,你有两个选择:
1) 使用
use
告诉 PHP 去哪里查找:
use Twilio\Rest\Client;
2)添加正确的命名空间
$client = new \Twilio\Rest\Client($sid, $token);