1

我有一个用纯 PHP 开发的 facebook 应用程序,我正在将该应用程序迁移到 YII 框架。

问题是我使用了一个名为“utilsFacebook”的类,其中我有对象 facebook(来自 fb sdk)以及我需要从 facebook、getUserId、getUserFriendList 等获取数据的所有方法。

我不知道如何使用 Yii 处理我在 utilsFacebook 中所做的所有操作。

创建一个具有 utilsFacebook 功能的控制器是正确的想法吗?每次我实例化控制器都会创建一个新的 Facebook 对象,我应该将该对象存储在 SESSION 中以获得更好的性能还是一个坏主意?

4

1 回答 1

1

Q. 创建一个具有 utilsFacebook 功能的控制器是正确的想法吗?

在使用 yii 作为框架完成了一个 facebook 应用程序之后,我建议你将这个库作为一个组件或一个扩展。

但绝对不要将这些功能直接放在控制器中。每当控制器需要他们使用您的自定义 facebook util 类调用函数时。

组件可以放在文件夹:projectrootfolder/protected/components

扩展可以放在文件夹:projectrootfolder/protected/extensions

如果您不相信其中任何一个具有语义意义,您总是可以在protected中创建一个新文件夹,比如utils并将类放在那里。但是我认为扩展是最好的方法。

问:我应该将该对象存储在 SESSION 中以获得更好的性能还是一个坏主意?

我认为没有必要将对象存储在会话中,因为不会有明显的性能提升。此外,您将不必要地使您的代码复杂化。

我所做的是,创建了一个应用程序级别的组件,并在整个应用程序中使用该组件,在任何控制器中。

例子:

在您的应用程序的配置中,protected/config/main.php

'components'=>array(
    'fbHelper'=>array( // gave the component this name
        'class'=>'ext.utils.FacebookHelper', // had stored the helper class in extensions/utils folder
        'parameter1'='somevalue',
        // more parameters
    ),

    // standard yii app components

),

这将允许您像这样使用组件:Yii::app()->fbHelper->getFriends();

看看facebook-opengraph扩展,它可以帮助你,在路上。

于 2012-07-26T04:38:33.417 回答