2011-02-02 10 views
3

最新のCodeigniter 2.0を使用してアプリケーションを構築しています。私のアプリケーションは動的で、カスタムCMSのようなものです。あなたが言うことができると思います。基本的に私は現在、特定の設定を取得するために、ヘルパー関数を使用してやっているものをCodeigniterデータベースベースの構成設定

  • ID

:私は、次のフィールドを持つ「設定」と呼ばれるデータベーステーブルを持っていますサイト名や現在のテーマのような私の設定テーブルから。しかし、私は設定を取得するためのデータベース呼び出しの一定量がデータベース上で多すぎるかもしれないと考え始めました。

私のアプリケーションの設定をデータベースから取り出して、設定ファイルに追加する方法はありますか?私はMojomotorが似たようなことをしていることに気がつきましたが、それはCI 2.0アプリケーションですが、そうするためのコードはもっと簡単で簡単です。

データベースの設定が変更されて設定ファイルが更新された場合、すべての設定を頻繁に確認できるようにすることをお勧めします。データベースの負荷が少なくなればなるほど。

+0

誰がデータベースの値を変更していますか?なぜ、その人が代わりに構成ファイルを変更できないのですか? – Dolph

+2

@Dolph - CMSを構築するときに、テクニカルではないユーザーが、テキストエディタやFTPや構文の問題に煩わされることなく、Webページから直接設定を変更できるようにすることがよくあります。 – Summer

+1

@Dolph - Summerが正しいです。設定ファイルを編集するのが理想的ですが、config.phpファイルを開き、引用符間の値を変更して保存するなど、簡単な指示を理解できない人がいます。何人かの人々は、そのようなものを理解できないだけでなく、人々はCMSの中から設定を変更したり追加したりすることに慣れています –

答えて

5

最善の解決策は、真ん中にあります。 DBコールはゼロではありません。 1つの設定につき1つのDBコールではありません。ページごとに1つのDB呼び出しを呼び出す代わりに、残りのアプリケーションが必要に応じて参照できるレコードセット/オブジェクトのすべての設定を取得します。

+2

実際に天才のアイデア。おそらく、$ settingsという名前のパブリック変数を作成し、それを配列にすると、私のコンストラクタでは、単にすべての設定をフェッチしてMY_Controllerの配列に入れて、サイト上の他のすべてのコントローラを拡張して、 this-> settings ['site_theme']この場合、テーマが 'icy'であるかどうかは氷で返します。私は設定テーブルに50行以上ありませんので、パフォーマンスの影響は少なくなると思います。 –

関連する問題