PHP - 如何在 composer 命名空间环境中访问 Twilio
PHP - How to access Twilio in a composer namespace environment
我一直在使用 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
我在 class 的方法中调用 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 ......
我对作曲家和命名空间还很陌生,希望这些信息足以帮助我。
使用命名空间时,PHP 将始终开始寻找 class 当前命名空间中未添加自己命名空间的元素。
在你的例子中,当前的命名空间是 Websocket
,因此 PHP 试图自动加载 class Websocket\Client
,为了防止这种情况,你有两个选择:
1) 使用 use
告诉 PHP 在哪里看:
use Twilio\Rest\Client;
2) 添加正确的命名空间
$client = new \Twilio\Rest\Client($sid, $token);
我必须更新 Twilio,
运行 composer require twilio/sd
- Removing twilio/sdk (4.12.0)
- Installing twilio/sdk (5.4.1)
Downloading: 100%
现在我可以 use Twilio\Rest\Client;
因为它以前不见了。
我一直在使用 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
我在 class 的方法中调用 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 ......
我对作曲家和命名空间还很陌生,希望这些信息足以帮助我。
使用命名空间时,PHP 将始终开始寻找 class 当前命名空间中未添加自己命名空间的元素。
在你的例子中,当前的命名空间是 Websocket
,因此 PHP 试图自动加载 class Websocket\Client
,为了防止这种情况,你有两个选择:
1) 使用 use
告诉 PHP 在哪里看:
use Twilio\Rest\Client;
2) 添加正确的命名空间
$client = new \Twilio\Rest\Client($sid, $token);
我必须更新 Twilio,
运行 composer require twilio/sd
- Removing twilio/sdk (4.12.0)
- Installing twilio/sdk (5.4.1)
Downloading: 100%
现在我可以 use Twilio\Rest\Client;
因为它以前不见了。