質問: phpでフレームワークはcodeigniterを使って実装しているんですが、 sqlで同じデータを取ってきている箇所が何か所もあります。 それは共通なデータなのでどこかで一回だけデータを取ってきて格納配列に格納しておいて、 それを使い回そうとおもうのですが、 どのコントローラーやライブラリからでも同じ配列を呼び出すことはできるんですか?? どうやればよいでしょうか?? また別になにか良い方法あれば教えて下さい。 よろしくお願いします。
回答: 「DBから取ってきた同じ配列を何度も参照したい」ということですが、大きく2階層に分かれます。 * 「1リクエスト内で」何度も参照したい場合 この場合は、モデルオブジェクトは共通ですので、モデルのメンバ変数としてキャッシュさせれば、同じリクエストの間はそのまま使いまわせます。 * 「リクエストを超えて」キャッシュしたい場合 CodeIgniterでキャッシュ用のライブラリがありますので、それを使いましょう(リンクはCodeIgniter 2のものですが、3でもほぼ同じです)。PHPに組み込むapcuや別にサーバを立てるmemcached、Redisなど、キャッシュ機構の用意が必要です。