2012-05-11 15 views
2

簡単な質問 - 私はいくつかのサイト変数を保存する最良の方法を決定しようとしています。私は設定を選ぶことができる私のサイトに「コントロールパネル」タイプの機能を作りたいと思っており、それらは私のサイト全体に反映されます。サイトのグローバル変数を保存する

たとえば、私は販売している商品が1つあり、価格(価格を表示する画像)があります。私はこのグローバル変数をカスタムバックエンドページからimg srcなどに変更するのではなく、設定することができます。

これを行う最善の方法は何ですか?最初は私はDBテーブルを考えましたが、確かにそれはサイト変数のほんの一握りしかアクセスできない(遅い)方法でしょうか?私はファイルについても考えましたが、値が変わったときに正しいビットを上書きする方法が不思議に思っていました。

あなたの専門知識を使って、(好きな方法があれば)アベニューをお勧めしますか?どうもありがとう! (私はYiiフレームワークを使用しています。

答えて

1

プロパティ(.ini)ファイルを使用して調べることができます。

関数parse_ini_file(string $filename)は、.iniファイルによって格納されたプロパティの配列を返します。

しかし、phpにはiniファイルを書き込む機能がありません。カスタムファイルが必要です。 Hereは1つで、write_ini_file(array $assoc_arr, string $path)です。これは、配列キーと値を指定されたパスのiniファイルに追加し、必要に応じて古いキー値を新しいものに置き換えます。

+0

ありがとうございます。私はこれを見て、PHPを使ってiniファイルに書き戻す方法が見つからない限り、非常に有望なようでしたか?書き戻す方法(既存の値を上書きする)はありますか? –

+1

iniファイルへの書き込み方法を含むように私の答えを編集しました。 – Vulcan

+0

素晴らしい、ありがとう。 –

1

データベースにサイト変数を格納することは悪い考えではありません。パフォーマンスが懸念される場合は、memcachedを使用してこれらの値をキャッシュして、追加のデータベースヒットを防ぎ、使用シナリオに応じてキャッシュされた値を正しく無効化する必要があります。

詳細については、次の記事を参照してください。PHP Performance Series: Caching Techniques

+0

私はそれを実装する方法を考えていた。私が本当に考えることができたのは、列が異なる変数用の1行テーブル。または列が「変数」「値」(またはその行に沿っている)の2列テーブル..他のどの方法よりも優れていますか? –

+0

私は彼らが使いやすいと思うので、私はキーと値のペアを好む。すべてがキャッシュされている限り、最初に値を取得する際のパフォーマンスの差(1列が多数あり、複数列が3列[ID、キー、値])は無視できます。 – BluesRockAddict

1

あなたの要件は私のものと非常に似ています。設定拡張(http://www.yiiframework.com/extension/settings/)からインスピレーションを得て、アプリケーション全体で使用できる独自の設定APIを作成しました。これを参照してくださいhttps://github.com/xtranophilist/awecms/blob/f9bfc5a09bf050373b710ca15f6685ad8fea9fcd/protected/components/Settings.php get、set、およびdeleteメソッドは非常に柔軟性があり、バルク操作も可能です。

また、自動タイプの検出があり、設定値はバックエンド(管理モジュール)から管理できます。

関連する問題