'Services_Twilio' 未找到 - Laravel
'Services_Twilio' not found - Laravel
据我所知,我不能简单地使用 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' not found
我做错了什么?
此外,使用 require
给我错误:
Cannot redeclare Services_Twilio_autoload() (previously declared in /var/www/Laravel/vendor/twilio/sdk/Services/Twilio.php:9)
我尝试在 Twilio.php 中的 spl_autoload_register('Services_Twilio_autoload', false);
行添加 false,但没有成功
您必须在文件顶部导入它。
我不确定文件的完整路径,但我猜它应该是这样的:
use Twilio\SDK\Services\Twilio
更新:
按照此处的指南进行操作:
https://github.com/aloha/laravel-twilio
我不知道谁告诉你不能use Twilio
但你肯定可以use Twilio
。
- 获取作曲家包 -
composer require aloha/twilio
- 像任何其他供应商一样在
app.php
中注册 ServiceProvider
:'Aloha\Twilio\Support\Laravel\ServiceProvider',
应该添加到 providers
数组。
- 注册门面让生活更轻松——在
app.php
添加到aliases
数组:'Twilio' => 'Aloha\Twilio\Support\Laravel\Facade',
- (可选)运行
php artisan vendor:publish
这样您就可以管理供应商向您公开的资产。
- 因为我们之前将
facade
添加到 app.php
中的 aliases
数组中,所以我们可以在 classes 中正确地 use Twilio;
。
- 如果你没有做3,那么你需要引用完整的命名空间路径;
use Aloha\Twilio\Support\Laravel\Facade
这将使您可以访问该特定文件中的 Twilio::
。
编辑
我要注意,你不use Twilio
来自class,你必须在class和之前引用它class.
use Twilio; //Aloha\Twilio\Support\Laravel\Facade
class MyController {
/**
* Now you can use Twilio::whatever
*/
}
As far as I understand, I cannot simply use use Twilio
to make it work.
正确,因为 class 被命名为 Services_Twilio
。
use Services_Twilio;
应该可以解决问题。
Laravel 为您处理自动加载。您不需要手动 require
库,除非 Twilio 在他们的 Composer 设置中搞砸了一些东西。
对我不起作用。
背景:我的代码在 use Services_Twilio;
上工作了一段时间,但后来我停止使用 Twilio 几个月(或者可能超过一年),然后我收到了这个错误。
最终起作用的是将我的代码更新为 use Twilio\Rest\Client;
,然后通过 new Client($this->config['account_sid'], $this->config['auth_token']);
.
创建客户端对象
这似乎是 Twilio 的新做事方式。
These docs 有帮助。
据我所知,我不能简单地使用 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' not found
我做错了什么?
此外,使用 require
给我错误:
Cannot redeclare Services_Twilio_autoload() (previously declared in /var/www/Laravel/vendor/twilio/sdk/Services/Twilio.php:9)
我尝试在 Twilio.php 中的 spl_autoload_register('Services_Twilio_autoload', false);
行添加 false,但没有成功
您必须在文件顶部导入它。
我不确定文件的完整路径,但我猜它应该是这样的:
use Twilio\SDK\Services\Twilio
更新: 按照此处的指南进行操作: https://github.com/aloha/laravel-twilio
我不知道谁告诉你不能use Twilio
但你肯定可以use Twilio
。
- 获取作曲家包 -
composer require aloha/twilio
- 像任何其他供应商一样在
app.php
中注册ServiceProvider
:'Aloha\Twilio\Support\Laravel\ServiceProvider',
应该添加到providers
数组。 - 注册门面让生活更轻松——在
app.php
添加到aliases
数组:'Twilio' => 'Aloha\Twilio\Support\Laravel\Facade',
- (可选)运行
php artisan vendor:publish
这样您就可以管理供应商向您公开的资产。 - 因为我们之前将
facade
添加到app.php
中的aliases
数组中,所以我们可以在 classes 中正确地use Twilio;
。 - 如果你没有做3,那么你需要引用完整的命名空间路径;
use Aloha\Twilio\Support\Laravel\Facade
这将使您可以访问该特定文件中的Twilio::
。
编辑
我要注意,你不use Twilio
来自class,你必须在class和之前引用它class.
use Twilio; //Aloha\Twilio\Support\Laravel\Facade
class MyController {
/**
* Now you can use Twilio::whatever
*/
}
As far as I understand, I cannot simply use
use Twilio
to make it work.
正确,因为 class 被命名为 Services_Twilio
。
use Services_Twilio;
应该可以解决问题。
Laravel 为您处理自动加载。您不需要手动 require
库,除非 Twilio 在他们的 Composer 设置中搞砸了一些东西。
背景:我的代码在 use Services_Twilio;
上工作了一段时间,但后来我停止使用 Twilio 几个月(或者可能超过一年),然后我收到了这个错误。
最终起作用的是将我的代码更新为 use Twilio\Rest\Client;
,然后通过 new Client($this->config['account_sid'], $this->config['auth_token']);
.
这似乎是 Twilio 的新做事方式。
These docs 有帮助。