PHP - 如何在作曲家命名空间环境中访问Twilio
我一直在使用Rachet WebSockets并创建了一个简单的聊天应用程序。该示例使用WebSocket命名空间。这是我第一次使用命名空间。现在我试图添加Twilio服务,但似乎可以将Twilio添加到我的名称空间中。PHP - 如何在作曲家命名空间环境中访问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)告诉PHP,其中通过使用use
看:
use Twilio\Rest\Client;
2)前面加上正确的名称空间
$client = new \Twilio\Rest\Client($sid, $token);
尝试'$ client = new \ Twilio \ Rest \ Client($ sid,$ token);'它说'Class'Twilio \ Rest \ Client'找不到'我是否需要将twilio添加到我的autoload_psr4或autoload_namespace? – K3NN3TH
有趣的部分是:当您使用Composer时,为什么在“using-without-composer”锚点链接到该网站? – Sven