【问题标题】:Laravel 4, Composer and hybridauth - How to load additional providersLaravel 4、Composer 和 hybridauth - 如何加载其他提供程序
【发布时间】:2013-09-03 12:42:18
【问题描述】:

我正在使用 Laravel 4,并已通过 composer 加载了 hybridauth,并让它在 Facebook 和 Twitter 上运行良好。现在我正试图让它与被列为附加提供商的 Steam 一起工作,但是我不断收到以下错误:

require_once(vendor/hybridauth/hybridauth/hybridauth/Hybrid/Providers/Steam.php) [function.require-once]:无法打开流:没有这样的文件或目录

显然它找错了地方,实际的类就在这个位置:

供应商/hybridauth/hybridauth/additional-providers/hybridauth-steam/Providers/Steam.php

我能找到的文档很少,我唯一的猜测是 hybridauth 的作者只提供了这些额外的提供者作为可选的附加功能,并希望您将类的位置移动到正确的位置,但是对于 composer 这个这不是做事的方式,并且在我运行 composer update 时会导致问题。

我无法通过 Google 找到任何遇到类似问题的人,这看起来很奇怪,所以我担心我错过了明显的问题。有没有办法使用额外的提供者,让它们自动加载,同时将混合身份验证与 Composer 一起使用?

我能想到的唯一解决方案是在尝试自动加载之前手动包含正确的文件。我不介意这样做,但我假设必须有适当的方法来做到这一点,否则将 Composer 与 Hybridauth 一起使用是毫无用处的。

【问题讨论】:

  • 库显然有问题。

标签: laravel laravel-4 composer-php hybridauth steam-web-api


【解决方案1】:

我在使用 Instagram 时遇到了这个问题,并且能够使用包装语法,这里记录了 http://hybridauth.sourceforge.net/userguide/tuts/specific-provider-wrapper.html

下面的代码让 Instagram 适配器为我工作。

           "Instagram" => array ( 
                "enabled" => true,
                "keys"    => array ( 
                    "id" => xxxx, 
                    "secret" => xxxx,
                ),
                "wrapper" => array(
                    'class'=>'Hybrid_Providers_Instagram',
                    'path' => $_SERVER['DOCUMENT_ROOT'].'/../vendor/hybridauth/hybridauth/additional-providers/hybridauth-instagram/Providers/Instagram.php'
                )
            ),

如果您阅读了 hybridauth/Hybrid/Provider_Adapter.php 第 69 行的源代码,您会看到它在使用标准路径执行 require_once 之前检查了这一点。

【讨论】:

    【解决方案2】:

    我也搜索并搜索了这个。我能想到的只是它是为在没有框架的情况下使用而设计的,然后被移植以与 Composer 一起使用,但是没有加载“附加提供者”文件夹,或者其他什么。有点烂。

    我刚刚将文件复制到另一个目录中,现在一切正常。

    这可能对你很方便......

    http://blog.elliothesp.co.uk/coding/laravel-4-and-hybrid-auth/

    关于此的部分:

    Copy the Steam.php file, located at:
    laravel/vendor/hybridauth/hybridauth/additional-providers/hybridauth-steam/Providers/Steam.php
    
    Over to:
    
    laravel/vendor/hybridauth/hybridauth/hybridauth/Hybrid/Providers/
    

    我不知道图书馆为什么将它们分开,对我来说没有任何意义。

    【讨论】:

    • 干杯,这会导致作曲家更新出现问题吗?
    • 不,我没有遇到任何问题。虽然我猜如果 Steam.php 文件已更新,它不会在您的项目中更新,您必须再次执行相同操作。我试图联系开发者,但没有得到任何回复。
    猜你喜欢
    • 2017-09-17
    • 1970-01-01
    • 2015-05-14
    • 2015-06-02
    • 2019-05-08
    • 2013-07-25
    • 2016-07-30
    • 2014-03-24
    • 1970-01-01
    相关资源
    最近更新 更多