php - 在请求之间记住 PHP 中的对象状态

标签 php database session internationalization static-variables

我正在编写一个应用程序,我将有一些不同语言的字典值。我知道我可以使用 GetText,但是 AFAIR 文件必须在编辑后编译,我想让用户编辑字典,我不能在服务器上重新编译 .mo 文件。我不知道会使用多少种语言,所以解决方案必须是有弹性的。

我设计的数据库运行良好,模式看起来不错,但对于每个字典值都有几个连接,所以解决方案不是太快。

出于这个原因,我正在考虑将字典值存储一次,并且仅在编辑其中的值后才刷新它。不幸的是,无法使用 PHP 静态变量,因为它们会在请求结束时消失。我不想使用 session ,因为我必须对每个用户进行数据库调用。理想情况下,我想像在 Java 中一样使用静态变量 - 只要应用程序在 JVM 中存在,它们就会存在。

为所有用户(不是每个用户)长时间(不是每个请求)存储一些变量(在我的示例中 - 字典、字典条目等)的最佳解决方案是什么?

我正在考虑制作类似 DictionaryValues 类的东西,将其序列化一次,然后在每次请求时将其反序列化。每次有人编辑字典时,对象将再次序列化并替换旧的序列化对象。当然,与读取字典值的频率相比,编辑很少发生。

这是一个好的解决方案吗?我应该序列化对象并将其存储在磁盘上还是将其写入数据库?哪个更快?

也许您找到了解决该问题的更好方法?

最佳答案

你可以试试 PHP APC .它快速且易于使用。您可以序列化/反序列化对象并轻松存储/获取它们。

在分布式环境中,您可以使用 memcache 执行相同的功能.

关于php - 在请求之间记住 PHP 中的对象状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1725611/

相关文章:

php - 使用 mysql 使用时区 php 查找打开和关闭状态

database - 使用 PostgreSQL 的审计数据库插件

mysql - 如果 future 不可用,请选择 future 或过去的日期

php - 自定义 session_handler 被 php7 破坏(session_set_save_handler)

node.js - 在nodejs/expressjs中使用RedisStore

php - CakePHP RestFul WebService 正确的文档和可下载的代码

php - 使用正则表达式替换搜索 MySQL 数据库

php - W7 Pro IIS 7.5 覆盖 PHP 位置 : Header

php - 这是显示数据库表中数据的正确方法吗?

javascript - 将 Flask Session 与新的 EventSource 结合使用