据我了解,我不能简单地使用use Twilio
来使其发挥作用。因此,我尝试了require_once
和require
。路径也应该是正确的
我尝试使用require_once
$twilioDir = '../vendor/twilio/sdk/Services/Twilio.php';
require_once($twilioDir);
$client = new Services_Twilio($_ENV['TWILIO_ACCOUNT_SID'], $_ENV['TWILIO_AUTH_TOKEN']);
Class' App \ Http \ Controllers \ Services_Twilio'找不到
我做错了什么?
另外,使用require
给了我错误:
无法重新声明Services_Twilio_autoload()(之前在/var/www/Laravel/vendor/twilio/sdk/Services/Twilio.php:9中声明)
我尝试在Twilio.php中的行spl_autoload_register('Services_Twilio_autoload', false);
添加false,但没有运气
答案 0 :(得分:3)
据我了解,我不能简单地使用
use Twilio
来使其发挥作用。
正确,因为该类名为Services_Twilio
。
use Services_Twilio;
应该可以解决问题。
Laravel为您处理自动加载。你不应该手动require
库,除非Twilio在他们的Composer设置中搞砸了。
答案 1 :(得分:1)
我不知道是谁告诉你你不能use Twilio
但你当然可以use Twilio
。
composer require aloha/twilio
ServiceProvider
中注册app.php
,与任何其他供应商一样:'Aloha\Twilio\Support\Laravel\ServiceProvider',
应添加到providers
数组中。app.php
添加到aliases
数组:'Twilio' => 'Aloha\Twilio\Support\Laravel\Facade',
php artisan vendor:publish
,以便您可以管理供应商向您公开的资产。facade
添加到aliases
中的app.php
数组中,所以我们可以在课程中正确use Twilio;
。use Aloha\Twilio\Support\Laravel\Facade
,可让您访问该特定文件中的Twilio::
。修改强>
我应该注意到你没有use Twilio
来自班级,你必须在班级之前在班级和之外引用它。
use Twilio; //Aloha\Twilio\Support\Laravel\Facade
class MyController {
/**
* Now you can use Twilio::whatever
*/
}
答案 2 :(得分:0)
您必须将其导入文件顶部。
我不确定文件的完整路径,但我猜它应该是这样的:
use Twilio\SDK\Services\Twilio
更新: 按照这里的指南: https://github.com/aloha/laravel-twilio
答案 3 :(得分:0)
accepted answer对我不起作用。
背景:我的代码在use Services_Twilio;
上工作了一段时间,但是后来我停止使用Twilio几个月(甚至可能超过一年),然后才出现此错误。
最终起作用的是更新我的代码以改为说use Twilio\Rest\Client;
,然后通过new Client($this->config['account_sid'], $this->config['auth_token']);
创建客户端对象。
这似乎是Twilio的更新工作方式。
These docs帮助了。