我正在使用Symfony3构建一个基于Twilio TaskRouter的应用程序,该应用程序使用twilio-php库。
Symfony中的所有其他组件都使用PS-0或PS-4命名约定,而标准twilio-php库不使用相同的命名约定,因此我不能直接使用某些类(在我的示例中是taskrouter)。
有问题的类是驻留在twilio-php/sdk/Services/CapabilityTaskRouter.php中的Services_Twilio_TaskRouter_Worker_Capability。
Symfony希望类位于目录vendor/twilio/sdk/Services/Twilio/TaskRouter/Worker/Capability目录中,但它找不到这个目录。
有没有办法在symfony类中包含vendor/twilio/sdk/Services/CapabilityTaskRouter.php并扩展Services_Twilio_TaskRouter_Worker_Capability类?
发布于 2016-02-04 19:15:34
您可以通过运行以下命令在供应商中安装lib:
composer require twilio/sdkcomposer会将lib添加到供应商文件夹中,在您的控制器中,您可以这样调用它:
$sid = "ACXXXXXX"; // Your Account SID from www.twilio.com/user/account
$token = "YYYYYY"; // Your Auth Token from www.twilio.com/user/account
$client = new Services_Twilio($sid, $token);
$message = $client->account->messages->sendMessage(
'9991231234', // From a valid Twilio number
'8881231234', // Text this number
"Hello monkey!"
);
print_r($message->sid);发布于 2016-02-04 18:43:58
在我看来,这是可能的。为了将包含逻辑与您的项目代码分开,您应该创建一个遵循PSR-4命名约定的包装类,它只是简单地扩展了Twilio类。
<?php
namespace MyProject\Service;
require_once('path/to/twilio-php/sdk/Services/CapabilityTaskRouter.php');
class CapabilityTaskRouter extends \Services_Twilio_TaskRouter_Worker_Capability
{
}这就是我们的方式,我们做了很多次将库集成到我们的项目中,而不是遵循PSR auloading概念。
发布于 2016-02-06 08:31:46
我是Twilio的员工。
我沿着实现https://github.com/fridolin-koch/VreshTwilioBundle助手扩展的路线走下去,在这个过程中,我发现由于命名约定和这些特定类的自动加载,这实际上是一个twilio-php助手库问题。
我打算完成VreshTwilioBundle的助手扩展,然而,这是我提交的PR,应该会让您继续前进:
https://stackoverflow.com/questions/35198357
复制相似问题