' Services_Twilio'没找到 - Laravel

时间:2016-03-17 23:42:16

标签: php laravel twilio twilio-php

据我了解,我不能简单地使用use Twilio来使其发挥作用。因此,我尝试了require_oncerequire。路径也应该是正确的

我尝试使用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,但没有运气

4 个答案:

答案 0 :(得分:3)

  

据我了解,我不能简单地使用use Twilio来使其发挥作用。

正确,因为该类名为Services_Twilio

use Services_Twilio;应该可以解决问题。

Laravel为您处理自动加载。你不应该手动require库,除非Twilio在他们的Composer设置中搞砸了。

答案 1 :(得分:1)

我不知道是谁告诉你你不能use Twilio但你当然可以use Twilio

  1. 抓住作曲家包 - composer require aloha/twilio
  2. ServiceProvider中注册app.php,与任何其他供应商一样:'Aloha\Twilio\Support\Laravel\ServiceProvider',应添加到providers数组中。
  3. 注册外观以简化生活 - 在app.php添加到aliases数组:'Twilio' => 'Aloha\Twilio\Support\Laravel\Facade',
  4. (可选)运行php artisan vendor:publish,以便您可以管理供应商向您公开的资产。
  5. 因为我们之前已将facade添加到aliases中的app.php数组中,所以我们可以在课程中正确use Twilio;
  6. 如果你没有做3,那么你需要引用完整的命名空间路径; use Aloha\Twilio\Support\Laravel\Facade,可让您访问该特定文件中的Twilio::
  7. 修改

    我应该注意到你没有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帮助了。