Q. utilsFacebook の関数を使用してコントローラーを作成するのは正しい考えですか?
フレームワークとして yii を使用して facebook アプリを作成したので、このライブラリをコンポーネントまたは拡張機能にすることをお勧めします。
ただし、これらの関数をコントローラーに直接入れないでください。コントローラーが必要なときはいつでも、カスタム facebook util クラスを使用して関数を呼び出します。
コンポーネントは次のフォルダーに配置できます: projectrootfolder/protected/components
拡張機能は次のフォルダーに配置できます: projectrootfolder/protected/extensions
これらのいずれもセマンティックな意味を成さないと思われる場合は、常にprotected内に新しいフォルダーを作成できます。たとえば、utilsを作成し、そこにクラスを配置します。ただし、拡張機能が最適な方法だと思います。
Q.パフォーマンスを向上させるためにそのオブジェクトを 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拡張機能を見てください。