【问题标题】:Sending a PHP object to another PHP page将 PHP 对象发送到另一个 PHP 页面
【发布时间】:2013-12-26 19:32:06
【问题描述】:

我想知道是否有一种方法可以将 PHP 对象发送到另一台机器上的另一个 PHP 页面?

例如 - 我已经实现了一个构造 Trie 的类。现在在构造 Trie 之后,我想将对象发送到另一个 PHP 页面,以便它也可以访问该对象。

可能会将其打包成某种编码的 JSON 请求,然后将其发送到可以使用 jQuery 将其中继到所需页面的页面,这是一个可行的选择吗?

对不起,我对此完全陌生!

将感谢提供的任何帮助。

干杯!

【问题讨论】:

  • 确保你的类实现Serializable接口,然后序列化对象,将其作为字符串发送,然后反序列化。
  • 就我个人而言,我会将对象存储在对象存储中,而不是序列化和发布,但这只是我 :)
  • @dave 对象存储在您需要“更改”页面时无法正常运行
  • @STTLCU 是的。 memcache,APC 地狱,甚至一个会话都可以使用。大多数nosql数据库都适合对象存储,只需根据用户浏览的键为每个对象分配一个键,为每个新浏览器生成一个新键并将其存储在会话/cookie中以检索他们的个人“对象”nosql-database.org
  • @Dave 我试图只使用普通 PHP 来保持简单(嗯,即使 memcache 也是一个相当高级的主题)。我完全同意你的看法,请注意明确禁止将对象存储在会话变量中。

标签: php jquery oop trie


【解决方案1】:

对象是类的一个实例。对象不能按原样发送。 “可传输”对象必须是可序列化的:确保您的类实现了Serializable

一旦你实现了接口,只需调用序列化和反序列化方法来获取对象字符串并重建对象

【讨论】:

    【解决方案2】:

    使用 php 函数 serialize() 和 unserialize()。反序列化对象时,请务必定义其类。

    【讨论】:

      【解决方案3】:

      我个人会将对象存储在对象存储中而不是序列化 memcache,APC 甚至可以使用会话,您还可以使用 nosql 样式数据库和密钥存储,所有这些都非常适合对象持久性,因为它们'主要是非常快速的访问数据存储,没有 sql 开销。 nosql-database.org

      只需根据用户浏览的密钥为每个对象分配一个密钥,为每个新浏览器生成一个新密钥并将其存储在 session/cookie 中以检索他们的个人“对象”

      正如 STT 已经提到的,您可以序列化并存储在会话中,这非常好,尽管序列化在 php 中实现延迟,他们不应该把它放进去。

      相反,看看 APC 和 SPL 都内置在 php 中(APC 更适合对象存储,特别是因为从 5.6(我相信从那时起)它不再是扩展,而是内置到 PHP 核心中,它自己完全native 所以你不仅可以获得一个简单的对象存储,还可以获得操作码缓存,这将大大提高你的 php 页面的速度。

      注意:APC 仅在您运行单个 web / php 服务器时才真正可用于对象存储,如果您需要多个处理服务器,那么您将需要一个分布式对象存储,在这种情况下,您可能会得到最好的对象存储是 memcache

      很多链接大多都在 SO 上。

      When should I use Memcache instead of Memcached?

      Memcached vs APC which one should I choose?

      http://php.net/manual/en/book.memcached.php

      http://php.net/manual/en/book.apc.php

      Is there a way in PHP to use persistent data as in Java EE? (sharing objects between PHP threads) without session nor cache/DB

      【讨论】:

        【解决方案4】:

        正确的方法是在对象的类中实现 Serializable 接口(如果还没有的话),通过两台服务器之间的某种传输传递它。

        尽量不要通过客户端代码发送数据,除非您信任客户端或您不关心数据。

        【讨论】:

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