Symfony3的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

我正在使用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/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并允许您将其称为服务的软件?