index - laravel getting started
Laravel 4, Composer e hybridauth: cómo cargar proveedores adicionales (2)
Estoy usando Laravel 4 y he cargado hybridauth a través de compositor y lo he hecho funcionar bien con Facebook y Twitter. Ahora estoy tratando de hacerlo funcionar con Steam, que figura como un proveedor adicional, sin embargo sigo recibiendo el siguiente error:
require_once (proveedor / hybridauth / hybridauth / hybridauth / Hybrid / Providers / Steam.php) [function.require-once]: no se pudo abrir la secuencia: no existe dicho archivo o directorio
Está claro que está buscando en el lugar equivocado, la clase real reside en esta ubicación:
proveedor / hybridauth / hybridauth / proveedores adicionales / hybridauth-steam / Providers / Steam.php
Hay muy poca documentación que pueda encontrar sobre esto, mi única conjetura es que el autor de hybridauth solo ofreció estos proveedores adicionales como extras opcionales y espera que mueva la ubicación de la clase al lugar correcto, sin embargo, con el compositor esto no es la forma de hacer las cosas y causará problemas cada vez que ejecute la actualización del compositor.
No puedo encontrar a nadie que tenga un problema similar a través de Google, lo que parece extraño, así que me preocupa que me pierda lo obvio. ¿Hay alguna manera de utilizar los proveedores adicionales para hacer que se auto carga, mientras se usa hybridauth con Composer?
La única solución que puedo pensar es incluir manualmente el archivo correcto antes de que intente autocargar. No me importa hacer eso, pero supongo que debe haber una forma adecuada de hacerlo, de lo contrario, usar Composer con Hybridauth es bastante inútil.
Busqué y busqué esto también. Todo lo que puedo pensar es que fue hecho para usar sin marcos, luego fue portado para ser usado con Composer, sin embargo, la carpeta "proveedores adicionales" no está cargada, o algo así. Es una mierda.
Acabo de copiar el archivo en el otro directorio, y todo funciona ahora.
Esto quizás sea útil para ti ...
http://blog.elliothesp.co.uk/coding/laravel-4-and-hybrid-auth/
Parte con respecto a esto:
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/
No tengo idea de por qué la biblioteca los separó, no tiene ningún sentido para mí.
Tuve este problema con Instagram y pude usar la sintaxis del contenedor, que está documentada aquí http://hybridauth.sourceforge.net/userguide/tuts/specific-provider-wrapper.html
El siguiente código tiene el adaptador de Instagram funcionando para mí.
"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''
)
),
Si lee la fuente en hybridauth / Hybrid / Provider_Adapter.php línea 69, verá que comprueba esto antes de hacer require_once con la ruta estándar.