2013-09-03 4 views
7

Sto utilizzando Laravel 4 e ho caricato hybridauth tramite il compositore e ho funzionato perfettamente con Facebook e Twitter. Ora sto cercando di farlo funzionare con vapore, che viene indicato come un provider aggiuntivo, tuttavia continuo a ricevere il seguente errore:Laravel 4, Composer e hybridauth - Come caricare ulteriori provider

require_once(vendor/hybridauth/hybridauth/hybridauth/Hybrid/Providers/Steam.php) [function.require-once]: failed to open stream: No such file or directory

Chiaramente che sta cercando nel posto sbagliato, la classe reale risiede in questa posizione :

vendor/hybridauth/hybridauth/additional-providers/hybridauth-steam/Providers/Steam.php

C'è molto poco di documentazione che posso trovare su questo, la mia unica ipotesi è che l'autore di hybridauth offerto solo questi altri provider come optional e si prevede di spostare la posizione della classe al posto giusto tuttavia con compositore questo non è il modo di fare le cose e causerà problemi ogni volta che eseguo l'aggiornamento di compositore.

Non riesco a trovare nessuno che abbia un problema simile tramite Google, il che sembra strano quindi sono preoccupato che mi manchi evidente. C'è un modo per utilizzare i provider aggiuntivi, per farli caricare automaticamente mentre si utilizza hybridauth con Composer?

L'unica soluzione che posso pensare è di includere manualmente il file corretto prima che provi ad eseguire il caricamento automatico. Non mi dispiace farlo, ma sto assumendo che ci debba essere un modo corretto per farlo altrimenti usare Composer con Hybridauth è abbastanza inutile.

+0

chiaramente qualcosa non va con la libreria. – Michelle

risposta

-1

Ho cercato e cercato anche questo. Tutto quello che posso pensare è che è stato realizzato per l'uso senza framework, quindi è stato portato per essere utilizzato con Composer, tuttavia la cartella "provider aggiuntivi" non è stata caricata, o qualcosa del genere. Ti fa schifo.

Ho appena copiato il file nell'altra directory e tutto funziona ora.

Questo forse a portata di mano per voi ...

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

Parte riguardo a questa:

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/ 

Non ho idea del perché la biblioteca li ha separati, non ha alcun senso per me.

+0

Cheers, questo causerà comunque un problema con l'aggiornamento del compositore? – robjbrain

+0

No, non ho avuto problemi. Anche se penso che se il file Steam.php fosse stato aggiornato, non sarebbe stato aggiornato nel tuo progetto, dovresti fare lo stesso di nuovo. Ho provato a contattare lo sviluppatore, ma non ho mai ricevuto nulla. – Alias

4

Ho avuto questo problema con Instagram ed è stato in grado di utilizzare la sintassi involucro, che è documentata qui http://hybridauth.sourceforge.net/userguide/tuts/specific-provider-wrapper.html

Il codice di seguito ottenuto l'adattatore Instagram a lavorare per me.

  "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' 
       ) 
      ), 

Se leggete il fonte presso hybridauth/Hybrid/Provider_Adapter.php linea 69, vedrete che controlla per questo prima di fare require_once con il percorso standard.