【问题标题】:How are PHP objects attached to a user in a web appPHP 对象如何附加到 Web 应用程序中的用户
【发布时间】:2011-12-03 15:01:59
【问题描述】:

我的问题是,如果用户出现并使用面向对象的 PHP 应用程序,这些对象是如何与用户联系在一起的,一旦用户离开,它们会发生什么?

我了解OO

【问题讨论】:

  • 我认为你的问题的某些部分已经消失了。

标签: php session object


【解决方案1】:

PHP 是shared-nothing architecture,这意味着对于浏览器发出的每个 HTTP 请求,应用程序都会从​​一个空工作表开始(就 PHP 内部结构而言,例如变量和加载的类而言)。每个 PHP 对象都会在请求结束时消失。永久数据需要存储在其他地方(通常是数据库加上可能的基于键值的缓存,例如 memcached)。如何在这些外部存储中处理与用户相关的数据完全取决于应用程序。

【讨论】:

    【解决方案2】:

    对象并没有真正与用户绑定...听起来您在谈论会话变量。您可以通过将其添加到 php $_SESSION 变量来为单个用户存储一些信息,例如:$_SESSION['user_id'] = 5。一旦用户离开,该信息在过期之前仍然可以访问(您可以设置过期日期,或者通常在用户关闭浏览器时过期)。对于大多数与用户打交道的 Web 应用程序,将要求用户登录,当他们登录时,有关该用户的信息将存储在会话中。这允许用户在页面应用程序的多个页面上保持登录状态。然后,如果用户决定注销,这就是您取消设置或销毁该会话数据的时候。

    【讨论】:

      【解决方案3】:

      当收到 HTTP 请求时,PHP 会启动,为您的代码设置运行时环境并运行它。之后,所有这些都被拆除,在下一次请求时从头开始重新创建。

      所以除非你采取明确的步骤将你的对象(或任何其他类型的变量,真的)持久化到例如磁盘,然后在后续请求中读回它们,根本不会有过去创建的对象的痕迹。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-09-25
        • 2015-11-16
        • 1970-01-01
        • 2021-02-27
        • 2017-10-01
        • 1970-01-01
        相关资源
        最近更新 更多