2013-03-07 9 views
8

Umieściłem pliki SDK Facebooka w katalogu protected/helpers, z którego automatycznie ładuję klasy i pomocników 3rd Party dla mojej aplikacji Yii.Najlepszy sposób wdrożenia pakietu Facebook PHP SDK do Yii Framework

Gdy jeden z moich projektów dotyczył Facebooka Zaloguj się, wymyśliłem to proste i szybkie rozwiązanie, używając Yii::app()->params do osiągnięcia dziedziczenia właściwości obiektu w całej aplikacji.

// 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(); 

Tym samym, mam Yii::app()->params['facebook'] ustaw lub unieważnione, dostępne w całej mojej aplikacji iw ten sposób mogę uzyskać dostęp do Facebook API SDK gdziekolwiek w mojej aplikacji, ale ja wierzę, że to nie jest dobre rozwiązanie.

Czy istnieją jakieś, lepsze, rozwiązania do implementacji pakietu SDK API Facebooka w aplikacji Yii Framework?

+2

użyj [Components] (http://www.yiiframework.com/doc/guide/1.1/ en/basics.component) lub przyjrzyj się niektórym rozszerzeniom, takim jak [facebook-opengraph] (http://www.yiiframework.com/extension/facebook-opengraph) –

+0

W przeszłości zainstalowałem rozszerzenie yii-user i następnie utworzył nowy komponent, który rozszerza użytkownika yii. Możesz wykorzystać użytkownika yii do przechowywania tokenów logowania. Również trzymam klucze aplikacji w konfiguracji. – aCodeSmith

Odpowiedz

0

Zawsze próbuję przechowywać zmienne konfiguracyjne w DB. Zwłaszcza jeśli zawierają tajny klucz. Używałbym funkcji krypt Yii i zapisywał ją w db. Następnie utworzyłbym model do pobierania takich zmiennych konfiguracyjnych.

Po drugie, jeśli chodzi o rzeczywiste połączenie i co ty, chciałbym umieścić to jako komponent, który rozszerza CApplicationComponent, i albo umieść plik w katalogu rozszerzeń lub katalogu komponentów. Jeśli chcesz, aby był prawdziwym obiektem. Myślę, że pomysł pomocników to po prostu zestaw luźnych funkcji, najczęściej używam helperów do pracy w tablicy i stringach.

6

Ya. pobierać pliki Facebook SDK i przechowywać go w protected/components/Facebook następnie edytować config/main.php z

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

i dodać AppID klucz andsecret w param

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

od ciebie stronie można nazwać Twój pakiet SDK na Facebooku taki jak ten

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

dziękuję.

0

Trochę za późno, ale skończyło mi się pobieranie plików Facebook SDK z kompozytorem, autoloading tych i utworzono rozszerzenie usługi PCServiceComponent, które owija SDK.

Tak więc głównym config jest jak

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

i można go używać jak

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