PHP和从任何地方访问全局对象

PHP和从任何地方访问全局对象,php,Php,我有一个全局对象,一个“注册表”,它是一个包含其他重要对象的容器: 输入对象 输出对象 具有连接的DB对象 日志对象 会话对象 我需要在处理请求的每个地方(对象)都有这个全局对象 就像在我的JBoss环境中,我有一个有状态会话Bean作为前端控制器,它将处理定向到一个特殊的无状态会话Bean,我有一个入口点“facade.php” 在这个facade.php中,我创建了全局对象,并将其他对象(输入对象,…)放入其中 然后是一个大的switch语句,我将请求重定向到特殊的处理对象 是否有一种方

我有一个全局对象,一个“注册表”,它是一个包含其他重要对象的容器:

  • 输入对象
  • 输出对象
  • 具有连接的DB对象
  • 日志对象
  • 会话对象
我需要在处理请求的每个地方(对象)都有这个全局对象

就像在我的JBoss环境中,我有一个有状态会话Bean作为前端控制器,它将处理定向到一个特殊的无状态会话Bean,我有一个入口点“facade.php”

在这个facade.php中,我创建了全局对象,并将其他对象(输入对象,…)放入其中

然后是一个大的switch语句,我将请求重定向到特殊的处理对象


是否有一种方法、机制可以从处理对象访问此常规对象,而无需将其作为参数移交?

要使变量在任何地方都可用,您可以使用
$\u会话
变量,如下所示:

session_start();
$_SESSION['registry'] = // Your data

确保在需要访问会话变量时使用
session\u start()
函数。

要在任何地方都可以使用变量,可以使用
$\u session
变量,如下所示:

session_start();
$_SESSION['registry'] = // Your data
确保在需要访问会话变量时使用
session\u start()
函数。

您可以做什么:

  • 将对象放入会话中。(但这将在“请求”之后继续存在)
  • 将对象设为单体。(如果适合这种情况,我建议这样做。不要只使用单例来避免向类/函数传递参数。)
  • global
    关键字标记对象
您可以做什么:

  • 将对象放入会话中。(但这将在“请求”之后继续存在)
  • 将对象设为单体。(如果适合这种情况,我建议这样做。不要只使用单例来避免向类/函数传递参数。)
  • global
    关键字标记对象
请编写一些静态类..设置一次并根据需要使用多次请您添加一个示例好吗?请编写一些静态类..设置一次并根据需要使用多次请您添加一个示例好吗?为什么要在会话中存储?一旦执行完成,它就应该忘记因为如果OP在不同的文件之间跳跃,那么存储是有意义的以这种方式执行,然后使用
session\u destroy()
函数在执行完成后删除。为什么要在会话中存储它应该在执行完成后忘记因为如果OP在不同的文件之间跳转,以这种方式存储它是有意义的,然后使用
session\u destroy()
执行完成后删除的函数。