3

変更可能にしたいサイト メタデータがあります。たとえば、私のアプリケーションでは、システム管理者がサイトの「在庫」部分を使用したくない場合、システム管理者はそれをオフにすることができます。メインサイトから消えます。

そこで、データベースに「メタ」と呼ばれるテーブルを作成し、そこに値 (またはタプル) を挿入できるのではないかと考えていました。次に、モジュールがオフになった場合、スクリプトは行を更新し、「モジュール x」を 0 に設定します。

ただし、値のセットだけで、非常に多くのオーバーヘッド (テーブル全体の作成や維持など) のように思えます... 基本的に、私のソリューションは、正方形のペグを円形のスロットに押し込むようなものです。

drupal データベースをざっと見ても何も得られませんでした。サーバー自体の構成ファイルを使用していると思いますか? その場合、.cfg ファイル (たとえば) に保存された値が Web アプリでどのように読み取られるのか、また、そのようなアプリがファイルに情報を保存する方法も正確にはわかりません。以前にこの問題に取り組んだことがある場合は、洞察をいただければ幸いです。

ちなみに、私は主にPHPを使用しています。

前もって感謝します!

4

4 に答える 4

2

config 配列を使用してこれが達成されるのをよく見てきました。

$config["admin_email"] = "admin@mydomain.com";
$config["site_name"] = "Bob's Trinket Store";
$config["excluded_modules"] = array("inventory", "user_chat");

その後、次のことを確認できます。

if (!in_array("inventory", $config["excluded_modules"])) {
  // include inventory logic
}

確かに、これは少し後ろ向きです。実際には、含まれているモジュールを否定的に宣言するよりも、明示的に宣言する方が賢明です。次に、プロジェクトでこれを参照しconfig.phpて、さまざまな構成に応じて読み込み、動作します。

これをデータベース テーブルとして実装して、少なくとも 2 つのフィールドを作成することもできます。

  1. オプション
  2. 価値

「excluded_modules」はどこoptionにあり、それに対応するのvalueは「inventory,user_cat」です。ただし、正直なところ、この方法は少しずさんで、将来的にフラストレーションを感じる可能性があります。

于 2010-02-03T05:12:27.067 に答える
2

あなたの質問が「Web アプリからサーバー上の別のファイルを読み書きするにはどうすればよいか」ということは知っていますが、あなたが行った仮定の 1 つに対処すると思いました。設定をDBに保存することに(あまりにも)問題はありません。

あなたが説明したように、多かれ少なかれデータベースに構成を保存するプロジェクト(大量のトラフィックと良好な稼働時間-そしてそれを維持する大量のIT = P)を見てきました。それが単一のテーブルであり、それに狂ったフェイルオーバー/パーティション化スキームがまったくない場合、それは実際にはそれほど多くのオーバーヘッドではありません.

DB には、データの保存以外にも多くの機能と、その周りの多くのインフラストラクチャがあります。構成に DB を使用する場合、追加コストをほとんどかけずに、DB の展開/バックアップに使用できるメカニズムを使用できます。また、組み込みのアクセス許可メカニズムと、利用可能な元に戻す機能を利用することもできます。

編集:ただし、すべてのページ表示でその構成にアクセスすると、ボトルネックになる可能性があります:)デザインに関するすべて。1 つの解決策は、永続的な Web サービスがある場合、X 秒ごとに構成を再スキャンすることです。

于 2010-02-03T05:25:08.717 に答える
1

基本的に 2 つの選択肢があります。DB テーブルに配置するか、フラットな構成ファイル (おそらく PHP、おそらく XML) に配置します。後者の場合、ページから編集できるようにするには、(1) OS 固有の厄介なファイル アクセスの問題に対処し、(1) サイトをセットアップするたびに適切なファイル アクセス許可を適用し、(3) 解析してPHP/XML コードを生成します。データベースの場合、必要なのは単純なクエリだけなので、私は間違いなくそれを使用します。

このアプローチを使用する大規模なプロジェクトに関しては、phpBB がその構成の大部分をデータベースに保存することを知っています (前回確認したパスワードを除く)。

于 2010-02-03T05:14:58.247 に答える
1

public_html フォルダーの前にある構成として ini ファイルを使用することを好みます。これにより、多くの柔軟性と var のグループ化が可能になり、必要に応じてモジュールなどに個別の ini を作成できると思います。

于 2010-02-03T10:10:20.510 に答える