Symfony3的twilio php库中的TaskRouter
我正在使用Symfony3构建基于Twilio TaskRouter的应用程序,该应用程序使用Twilio php库 Symfony中的所有其他组件都使用PS-0或PS-4命名约定,而标准的twilio php库不使用相同的命名约定,因此我不能直接使用某些类(在我的例子中是taskrouter) 所讨论的类是Symfony3的twilio php库中的TaskRouter,php,symfony,twilio-php,Php,Symfony,Twilio Php,我正在使用Symfony3构建基于Twilio TaskRouter的应用程序,该应用程序使用Twilio php库 Symfony中的所有其他组件都使用PS-0或PS-4命名约定,而标准的twilio php库不使用相同的命名约定,因此我不能直接使用某些类(在我的例子中是taskrouter) 所讨论的类是Services\u Twilio\u TaskRouter\u Worker\u Capability,它位于Twilio php/sdk/Services/CapabilityTaskR
Services\u Twilio\u TaskRouter\u Worker\u Capability
,它位于Twilio php/sdk/Services/CapabilityTaskRouter.php
中
Symfony希望该类位于目录vendor/twilio/sdk/Services/twilio/TaskRouter/Worker/Capability
中,但找不到该目录
有没有办法包括vendor/twilio/sdk/Services/CapabilityTaskRouter.php
在symfony类中,并扩展
服务→任务路由器→工作人员→功能
类?我认为这是可能的。为了将include逻辑与项目代码分开,您应该创建一个遵循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
{
}
您可以通过运行以下命令在供应商中安装库:
composer require twilio/sdk
composer会将库添加到供应商文件夹中
在您的控制器中,您可以像这样调用它:
$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);
我是Twilio的雇员
我在实现帮助程序扩展的过程中发现,由于命名约定和这些特定类的自动加载,这确实是一个TwilioPHP帮助程序库问题
我打算完成VreshTwilioBundle的助手扩展,但是,这是我提交的PR,应该可以让您继续前进:
我试图添加require_once函数,但同样的错误不断出现,说它无法找到文件。是的,以上就是我所做的。当我使用标准php框架时,上面的方法是有效的,但一旦我开始使用symfony,这就不起作用了。您是否尝试过安装包装Twilio SDK并允许您将其称为服务的软件?