将Facebook PHP SDK实现到Yii Framework的最佳方式

8 php yii facebook-php-sdk facebook-login

我已将Facebook SDK文件放入protected/helpers目录中,我从中为我的Yii应用程序自动加载类和第三方帮助程序.

当我的一个项目涉及Facebook登录时,我想出了这个简单快速的解决方案,使用它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();
Run Code Online (Sandbox Code Playgroud)

因此,我在Yii::app()->params['facebook']整个应用程序中都可以使用,设置或取消设置,这样我就可以在我的应用程序中访问Facebook API SDK,但我确实相信这不是一个好的解决方案.

有没有更好的解决方案将Facebook API SDK应用到Yii框架应用程序中?

rol*_*olz 6

雅.下载Facebook SDK文件并将其保存在protected/components/Facebook中,然后编辑您的config/main.php

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

并在您的参数中添加appid和密钥

'params'=>array(
    'Facebook'=>array(  
        'appId' => '148966221932337',
        'secret' => 'a52ce7b4a0cd5d517c6ada53fc77cde7',
        'cookie' => true,
    ),
);
Run Code Online (Sandbox Code Playgroud)

在您的页面中,您可以像这样调用您的Facebook SDK

$facebook = new Facebook(Yii::app()->params['Facebook']);
$user_id = $facebook->getUser();
Run Code Online (Sandbox Code Playgroud)

谢谢.


bon*_*nez 0

我总是尝试将配置变量存储在数据库中。特别是当它们涉及密钥时。我会使用 Yii 的 crypt 功能并将其存储在数据库中。然后我会围绕检索配置变量创建模型。

其次,就实际连接工作以及您拥有的内容而言,我会将其作为扩展 CApplicationComponent 的组件,并将文件放置在扩展目录或组件目录中。如果你想让它成为一个真正的对象。我认为助手的想法只是一组松散的函数,我主要使用助手来进行数组和字符串工作。