Я пишу приложение, и у меня будет несколько словарных значений на разных языках. Я знаю, что мог бы использовать GetText, но файлы AFAIR должны быть скомпилированы после редактирования, и я хочу позволить пользователю редактировать словарь, и я не могу перекомпилировать .mo файлы на сервере. Я не знаю, сколько языков будет использоваться, поэтому решение должно быть гибким.
Я спроектировал базу данных так, чтобы она работала хорошо, и схема выглядела отлично, но для каждого значения словаря есть пара объединений, поэтому решение не слишком быстрое.
По этой причине я думаю о том, чтобы сохранить значения словаря один раз и обновить его только после редактирования значения в нем. К сожалению, статические переменные PHP не могут быть использованы, потому что они умирают в конце запроса. Я не хочу использовать сессию, потому что мне придется делать вызовы БД для каждого пользователя. В идеале я хотел бы использовать статические переменные так же, как в Java - они живут так же долго, как приложение в JVM.
Каково лучшее решение для хранения некоторых переменных (в моем примере - словарей, словарных записей и т. Д.) В течение длительного времени (не по запросу) для всех пользователей (не для пользователя)?
Я думаю сделать что-то вроде DictionaryValues
класса, сериализовать его один раз, а затем десериализовать его при каждом запросе. Каждый раз, когда кто-то редактирует словарь, объект снова сериализуется и заменяет старый сериализованный объект. Конечно, редактирование будет происходить редко по сравнению с тем, как часто будут читаться значения словаря.
Это хорошее решение? Должен ли я сериализовать объект и сохранить его на диске или записать в базу данных? Какой из них быстрее?
Может быть, вы найдете лучшее решение для этой проблемы?