'Services_Twilio' не найден - 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']);
Класс 'App\Http\Controllers\Services_Twilio' не найден
Что я делаю неправильно?
Кроме того, используя require
дал мне ошибку:
Невозможно повторно объявить Services_Twilio_autoload() (ранее объявлено в /var/www/Laravel/vendor/twilio/sdk/Services/Twilio.php:9)
Я попытался добавить false в строку spl_autoload_register('Services_Twilio_autoload', false);
в Twilio.php, но не повезло
3 ответа
Насколько я понимаю, я не могу просто использовать
use Twilio
чтобы это работало.
Правильно, потому что класс назван Services_Twilio
,
use Services_Twilio;
должен сделать свое дело.
Laravel обрабатывает автозагрузку для вас. Вам не нужно вручную require
библиотека, если только Twilio не обманул что-то в их настройке Composer.
Я не знаю, кто сказал тебе, что ты не можешь 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;
в наших классах. - Если вы не сделали 3, то вам нужно сослаться на полный путь к пространству имен;
use Aloha\Twilio\Support\Laravel\Facade
который даст вам доступ кTwilio::
внутри этого конкретного файла.
редактировать
Я должен отметить, что вы не use Twilio
внутри класса вы должны ссылаться на него вне класса и перед классом.
use Twilio; //Aloha\Twilio\Support\Laravel\Facade
class MyController {
/**
* Now you can use Twilio::whatever
*/
}
Принятый ответ не работал для меня.
Справочная информация: мой код работал некоторое время с use Services_Twilio;
, но потом я перестал использовать Twilio на месяцы (или, может быть, больше года), а затем я получил эту ошибку.
То, что закончило работать, обновляло мой код, чтобы сказать use Twilio\Rest\Client;
вместо этого, а затем создать объект клиента с помощью new Client($this->config['account_sid'], $this->config['auth_token']);
,
Похоже, это новый способ Twilio.
Эти документы помогли.
Вы должны импортировать его в верхней части файла.
Я не уверен насчет полного пути к файлу, но я предполагаю, что это должно быть что-то вроде:
use Twilio\SDK\Services\Twilio
Обновление: следуйте инструкциям здесь: https://github.com/aloha/laravel-twilio