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扩展,它可以帮助你,在路上。