私はアプリケーションを書いています、そして私は多くの異なる言語でいくつかの辞書の値を持っています。GetTextを使用できることはわかっていますが、AFAIRファイルは編集後にコンパイルする必要があり、ユーザーに辞書を編集させたいので、サーバー上で.moファイルを再コンパイルできません。いくつの言語が使われるかわからないので、解決策は弾力的でなければなりません。
私はデータベースを設計して、それがうまく機能し、スキーマが正常に見えるようにしましたが、すべてのディクショナリ値に対して2つの結合があるため、ソリューションはそれほど速くありません。
そのため、辞書の値を一度保存し、値を編集してから更新することを考えています。残念ながら、PHP静的変数はリクエストの最後に終了するため、使用できませんでした。ユーザーごとにDB呼び出しを行う必要があるため、セッションを使用したくありません。理想的には、Javaと同じように静的変数を使用したいと思います。静的変数は、アプリケーションがJVMに存在する限り存続します。
すべてのユーザー(ユーザーごとではない)に対して、いくつかの変数(私の例では辞書、辞書エントリなど)を長期間(要求ごとではなく)保存するための最良の解決策は何ですか?
クラスのようなものを作成しDictionaryValues
、一度シリアル化してから、リクエストごとに逆シリアル化することを考えています。誰かが辞書を編集するたびに、オブジェクトは再びシリアル化され、古いシリアル化されたオブジェクトを置き換えます。もちろん、辞書の値が読み取られる頻度と比較して、編集が行われることはめったにありません。
これは良い解決策ですか?オブジェクトをシリアル化してディスクに保存するか、データベースに書き込む必要がありますか?どちらが速いですか?
多分あなたはその問題のより良い解決策を見つけますか?