duankaolei2921 2009-11-12 21:40
浏览 12
已采纳

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

I am writing an application and I will have some dictionary values in many different languages. I know I could use GetText, but AFAIR files have to be compiled after editing, and I want to let user edit dictionary, and I can't recompile .mo files on the server. I don't know how many languages will be used, so solution must be elastic.

I designed database so it works good, and schema looks fine, but for every dictionary value there are a couple of joins, so the solution is not too fast.

For that reason I am thinking of storing dictionary values once, and refresh it only after editing a value in it. Unfortunately, PHP static variables couldn't be used, because they die at the end of the request. I don't want to use session, because I will have to make DB calls per user. Ideally I would like to use static variables just as in Java - they are living as long as application live in JVM.

What is the best solution to store some variables (in my example - dictionaries, dictionary entries, etc.) for a long time (not per request) for all users (not per user)?

I am thinking of making something like DictionaryValues class, serialize it once, and then deserialize it every request. Every time somebody will edit dictionary, object will be serialized again and will replace old serialized object. Of course editing will occur rarely compared to how often dictionary values will be read.

Is this a good solution? Should I serialize the object and store it on the disk or write it to the database? Which one is faster?

Maybe you find better solution for that problem?

  • 写回答

3条回答 默认 最新

  • dongpao9165 2009-11-12 21:42
    关注

    You could try PHP APC. It is fast and easy to use. You can serialize/deserialize objects and store/get them easily.

    In a distributed environment, you could perform the same functions using memcache.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 Mac系统vs code使用phpstudy如何配置debug来调试php
  • ¥15 目前主流的音乐软件,像网易云音乐,QQ音乐他们的前端和后台部分是用的什么技术实现的?求解!
  • ¥60 pb数据库修改与连接
  • ¥15 spss统计中二分类变量和有序变量的相关性分析可以用kendall相关分析吗?
  • ¥15 拟通过pc下指令到安卓系统,如果追求响应速度,尽可能无延迟,是不是用安卓模拟器会优于实体的安卓手机?如果是,可以快多少毫秒?
  • ¥20 神经网络Sequential name=sequential, built=False
  • ¥16 Qphython 用xlrd读取excel报错
  • ¥15 单片机学习顺序问题!!
  • ¥15 ikuai客户端多拨vpn,重启总是有个别重拨不上
  • ¥20 关于#anlogic#sdram#的问题,如何解决?(关键词-performance)