2013-03-07 3 views
8

Я поместил файлы SDK в Facebook в каталог protected/helpers, из которого я загружаю классы и сторонние помощники для моего приложения Yii.Лучший способ реализовать Facebook PHP SDK в Yii Framework

Когда один из моих проектов связан с Facebook Login, я придумал это простое и быстрое решение, используя Yii::app()->params, чтобы получить наследование свойства объекта во всем приложении.

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

Таким образом, у меня есть Yii::app()->params['facebook'], установить или сбросить, доступны на протяжении всей моей заявки, и таким образом я могу получить доступ к API SDK Facebook, где в моем приложении, но я верю, что это не является хорошим решением.

Есть ли какие-либо решения для реализации Facebook API SDK в приложении Yii Framework?

+2

Использование [Components] (http://www.yiiframework.com/doc/guide/1.1/ ru/basics.component) или взглянуть на некоторые расширения, например [facebook-opengraph] (http://www.yiiframework.com/extension/facebook-opengraph) –

+0

В прошлом я установил расширение yii-пользователя и затем создал новый компонент, который расширяет yii-пользователя. Вы можете использовать yii-пользователя для хранения идентификаторов входа. Также я сохраняю свои ключи приложения в конфиге. – aCodeSmith

ответ

0

Я всегда пытаюсь сохранить конфигурационные переменные в БД. Особенно, если они связаны с секретным ключом. Я бы использовал функции криптографии Yii и сохранил ее в db. Затем я бы создал модель вокруг получения таких переменных конфигурации.

Во-вторых, насколько реальная работа подключения и что у вас есть, я бы поставил ее как компонент, который расширяет CApplicationComponent, и либо поместил файл в каталог расширений, либо в каталог компонентов. Если вы хотите сделать его истинным объектом. Я думаю, что идея помощников - это просто набор свободных функций, в основном я использую помощники для работы с массивами и строками.

6

Ya. загрузить Facebook SDK файлы и сохранить его в защищенных/компонентов/Facebook затем отредактировать конфигурационный/main.php с

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

и добавить APPID andsecret ключ в вашем PARAM

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

От вас страницы вы можете позвонить ваш Facebook SDK вот так

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

спасибо.

0

В конце концов, я закончил загрузку файлов SDK в Facebook с помощью композитора, автозагрузку и создание FacebookService, расширяющего CApplicationComponent, который обертывает SDK.

Таким образом, основная конфигурация подобна

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

и вы можете использовать его как

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