我寫一個應用程序,我將有許多不同的語言字典的一些值之間PHP對象的狀態。我知道我可以使用GetText,但編輯後必須編譯AFAIR文件,並且我想讓用戶編輯字典,並且不能在服務器上重新編譯.mo文件。我不知道會使用多少種語言,因此解決方案必須具有彈性。記住請求
我設計的數據庫,所以它工作得很好,模式看起來不錯,但對於每個字典值有幾個連接,所以解決方案不是太快。
因爲這個原因,我正在考慮一次存儲字典值,只有在編輯一個值後才刷新它。不幸的是,PHP靜態變量無法使用,因爲它們在請求結束時死亡。我不想使用會話,因爲我必須爲每個用戶進行數據庫調用。理想情況下,我想像使用Java一樣使用靜態變量 - 只要應用程序存在於JVM中,它們就會生活。
對於所有用戶(而不是每個用戶)長時間(而不是每個請求)存儲一些變量(在我的例子 - 字典,字典條目等)的最佳解決方案是什麼?
我正在考慮製作類似DictionaryValues
的類,將其序列化一次,然後對每個請求進行反序列化。每次有人編輯字典時,對象都會被重新序列化,並將替換舊的序列化對象。當然,與字典值讀取的頻率相比,編輯很少出現。
這是一個很好的解決方案嗎?我應該序列化對象並將其存儲在磁盤上還是寫入數據庫?哪一個更快?
也許你找到更好的解決方案,解決這個問題?