我正在使用 Symfony3 构建基于 Twilio TaskRouter 的应用程序,该应用程序使用 twilio-php 库。
Symfony 中的所有其他组件都使用 PS-0 或 PS-4 命名约定,而标准 twilio-php 库不使用相同的命名约定,因此我无法直接使用某些类(在我的例子中是任务路由器)。
相关类是
Services_Twilio_TaskRouter_Worker_Capability
,位于 twilio-php/sdk/Services/CapabilityTaskRouter.php
。
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
composer 会将 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);
我认为这是可能的。为了使包含逻辑与项目代码分离,您应该创建一个遵循 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 自动加载概念的库集成到我们的项目中。
这里是 Twilio 员工。
我沿着实现帮助器扩展的路线到https://github.com/fridolin-koch/VreshTwilioBundle,在这个过程中发现这实际上是一个 twilio-php 帮助器库问题,因为命名约定和自动加载这些特定类别的。
我打算完成 VreshTwilioBundle 的辅助扩展,但是,这是我提交的 PR,应该可以让您继续前进: