【问题标题】:How to store instances of the same object in PHP (stateless)?如何在 PHP(无状态)中存储同一对象的实例?
【发布时间】:2014-09-19 04:19:27
【问题描述】:

我正在查看“Pimple”,这是 Fabien Potencier 的 PHP 的“简单服务容器”,我对以下评论很感兴趣:

默认情况下,每次获得服务时,Pimple 都会返回它的同一个实例。如果您希望为所有调用返回不同的实例,请使用 factory() 方法包装您的匿名函数。

根据 PHP 的执行方式,这到底是怎么可能的?每次执行 PHP 脚本时,PHP 不会给我一个新的对象实例吗?

编辑:疙瘩链接 - https://github.com/fabpot/Pimple

【问题讨论】:

  • 我不确定我是否完全理解你的问题,但要明确一点 - PHP 确实 每次运行脚本时总是给你一个类的新实例,例如在网站的每个页面上实例化的登录类在您每次打开页面时都会创建一个自身的新实例。
  • 文档并不暗示跨执行的持久性,而是在同一个脚本中多次调用服务创建将返回同一个对象,除非包装在工厂方法中。
  • Drat,我希望这是一些 Fabien Potencier 的魔法。
  • 啊,谢谢。以为我把它断章取义了

标签: php stateless php-5.5


【解决方案1】:

回答这个问题,因为我的 cmets 中没有人这样做。答案——你不能! PHP over HTTP 是无状态的,我将 pimple 文档断章取意。

如果您需要实现这一点,您应该研究缓存系统(APC、memcached)或对象服务器(Redis)。

感谢您的澄清。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多