TaskRouter in twilio-php library for Symfony3



我正在使用Symfony3来构建一个基于Twilio TaskRouter的应用程序,该应用程序使用twilio-php库。

Symfony中的所有其他组件都使用PS-0或PS-4命名约定,而标准的twilio-php库则不使用相同的命名约定,因此我不能直接使用某些类(在我的情况下是任务路由器)。

有问题的类是驻留在twilio-php/sdk/Services/CapabilityTaskRouter.phpServices_Twilio_TaskRouter_Worker_Capability

Symfony期望该类位于目录vendor/twilio/sdk/Services/Twilio/TaskRouter/Worker/Capability目录中,但找不到该目录。

有没有办法包含vendor/twilio/sdk/Services/CapabilityTaskRouter.php在 symfony 类中并扩展Services_Twilio_TaskRouter_Worker_Capability类?

您可以通过运行以下命令在供应商中安装库:

composer require twilio/sdk

作曲家会将库添加到供应商文件夹在您的控制器中,您将能够像这样调用它:

$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);

在我看来这是可能的。若要将包含逻辑与项目代码分开,应创建一个遵循 PSR-4 命名约定的包装类,该类仅扩展 Twilio 类。

<?php
    namespace MyProjectService;
    require_once('path/to/twilio-php/sdk/Services/CapabilityTaskRouter.php');
    class CapabilityTaskRouter extends Services_Twilio_TaskRouter_Worker_Capability
    {
    }

就是这样,我们做了很多次将不遵循PSR加载概念的库集成到我们的项目中。

这里的Twilio员工。

我沿着实现帮助程序 https://github.com/fridolin-koch/VreshTwilioBundle 扩展的路线走下去,在这个过程中发现这实际上是一个twilio-php帮助程序库问题,因为命名约定和这些特定类的自动加载。

我打算完成对 VreshTwilioBundle 的帮助程序扩展,但是,这是我提交的 PR,应该让您继续前进:

https://github.com/twilio/twilio-php/pull/288

最新更新