PHP和从任何地方访问全局对象
我有一个全局对象,一个“注册表”,它是一个包含其他重要对象的容器:PHP和从任何地方访问全局对象,php,Php,我有一个全局对象,一个“注册表”,它是一个包含其他重要对象的容器: 输入对象 输出对象 具有连接的DB对象 日志对象 会话对象 我需要在处理请求的每个地方(对象)都有这个全局对象 就像在我的JBoss环境中,我有一个有状态会话Bean作为前端控制器,它将处理定向到一个特殊的无状态会话Bean,我有一个入口点“facade.php” 在这个facade.php中,我创建了全局对象,并将其他对象(输入对象,…)放入其中 然后是一个大的switch语句,我将请求重定向到特殊的处理对象 是否有一种方
- 输入对象李>
- 输出对象李>
- 具有连接的DB对象李>
- 日志对象李>
- 会话对象
是否有一种方法、机制可以从处理对象访问此常规对象,而无需将其作为参数移交?要使变量在任何地方都可用,您可以使用
$\u会话
变量,如下所示:
session_start();
$_SESSION['registry'] = // Your data
确保在需要访问会话变量时使用
session\u start()
函数。要在任何地方都可以使用变量,可以使用$\u session
变量,如下所示:
session_start();
$_SESSION['registry'] = // Your data
确保在需要访问会话变量时使用session\u start()
函数。您可以做什么:
- 将对象放入会话中。(但这将在“请求”之后继续存在)
- 将对象设为单体。(如果适合这种情况,我建议这样做。不要只使用单例来避免向类/函数传递参数。)
- 用
关键字标记对象李>global
- 将对象放入会话中。(但这将在“请求”之后继续存在)
- 将对象设为单体。(如果适合这种情况,我建议这样做。不要只使用单例来避免向类/函数传递参数。)
- 用
关键字标记对象李>global
session\u destroy()
函数在执行完成后删除。为什么要在会话中存储它应该在执行完成后忘记因为如果OP在不同的文件之间跳转,以这种方式存储它是有意义的,然后使用session\u destroy()
执行完成后删除的函数。