我正在使用Laravel 4,并已通过作曲者加载了hybridauth,并使其在Facebook和Twitter上正常工作。现在,我正在尝试使其与Steam一起使用,后者被列为其他提供程序,但是我不断收到以下错误:
显然,它所查找的位置错误,实际的类位于以下位置:
关于这一点,我几乎找不到文档,我唯一的猜测是hybridauth的作者仅提供了这些额外的提供程序作为可选的附加功能,并希望您将类的位置移动到正确的位置,但是对于 Composer ,这不是做事的方式,每当我运行 Composer 更新时都会引起问题。
我找不到任何人通过Google遇到类似的问题,这似乎很奇怪,所以我担心我错过了明显的问题。在Composer中使用hybridauth时,是否可以使用其他提供程序,使其自动加载?
我能想到的唯一解决方案是在尝试自动加载之前手动包含正确的文件。我不介意这样做,但是我假设必须有一种适当的方法来执行此操作,否则将Composer与Hybridauth一起使用是毫无用处的。
最佳答案
我在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之前会对此进行检查。