2013-03-07 16 views
8

Ho inserito i file di Facebook SDK nella directory protected/helpers, da cui ho eseguito il caricamento automatico delle classi e degli helper di terze parti per la mia applicazione Yii.Il modo migliore per implementare l'SDK PHP di Facebook in Yii Framework

Quando uno dei miei progetti ha coinvolto Facebook Login, ho trovato questa soluzione semplice e veloce, utilizzando lo Yii::app()->params per ottenere l'ereditarietà di una proprietà dell'oggetto in tutta l'applicazione.

// don't mind this $facebook variable, it's just a shortcut in this method 
Yii::app()->params['facebook'] = $facebook = new Facebook(array(
    'appId' => '148966221932337', 
    'secret' => 'a52ce7b4a0cd5d517c6ada53fc77cde7', 
    'cookie' => true, 
)); 

$user = $facebook->getUser(); 

In tal modo, ho il Yii::app()->params['facebook'], inserire o disinserire, disponibile in tutto la mia domanda e in questo modo posso accedere alla API SDK di Facebook, ovunque nella mia richiesta, però io belive che questa non è una buona soluzione.

Esistono soluzioni migliori per l'implementazione dell'SDK dell'API di Facebook nell'applicazione Yii Framework?

+2

Usa [Components] (http://www.yiiframework.com/doc/guide/1.1/ en/basics.component) o dare un'occhiata ad alcune estensioni, come [facebook-opengraph] (http://www.yiiframework.com/extension/facebook-opengraph) –

+0

In passato ho installato l'estensione yii-user e quindi creato un nuovo componente che estende l'utente yii. Puoi sfruttare l'utente yii per memorizzare i token di accesso. Inoltre tengo le chiavi della mia app nella configurazione. – aCodeSmith

risposta

0

Cerco sempre di memorizzare le variabili di configurazione nel DB. Soprattutto se coinvolgono una chiave segreta. Vorrei utilizzare la funzionalità di crittografia di Yii e memorizzarla nel db. Quindi creo il modello attorno al recupero di variabili di configurazione del genere.

In secondo luogo, per quanto riguarda la connessione effettiva e ciò che hai, lo inserisco come componente che estende CApplicationComponent e posiziona il file nella directory extensions o nella directory dei componenti. Se vuoi renderlo un vero oggetto. Penso che l'idea dell'aiuto sia solo un insieme di funzioni, per lo più uso aiutanti per il lavoro su array e stringhe.

6

Ya. scaricare i file Facebook SDK e conservarlo in protette/componenti/Facebook quindi modificare il config/main.php con

'import'=>array(  //autoloading model and component classes 
    'application.models.*', 
    'application.components.*', 
    'application.components.Facebook.*', 
), 

e aggiungere chiave andsecret AppID nel vostro param

'params'=>array(
    'Facebook'=>array( 
     'appId' => '148966221932337', 
     'secret' => 'a52ce7b4a0cd5d517c6ada53fc77cde7', 
     'cookie' => true, 
    ), 
); 

Da voi pagina è possibile chiamare il tuo SDK di Facebook come questo

$facebook = new Facebook(Yii::app()->params['Facebook']); 
$user_id = $facebook->getUser(); 

grazie.

0

Un po 'di ritardo, ma ho finito per scaricare i file SDK di Facebook con il compositore, caricando automaticamente quelli e creato un servizio Facebook estendendo CApplicationComponent che avvolge l'SDK.

Quindi la configurazione principale è come

'facebookService'=>array(
      'class' => 'FacebookService', 
      'appId' =>'xxxxxxxxxxx', 
      'appSecret' => 'xxxxxxxxxx', 
      'extendedAccessToken' => "xxxxxxxxxx", 
     ), 

ed è possibile utilizzarlo come

Yii::app()->facebookService->[method_I_defined] 
Problemi correlati