我有一个非常古老的PHP应用程序(1999年),在过去的十年中一直在努力。在这一点上,应用程序开始显示它的年龄,所以我正在向symfony 1.4的“新”框架迁移。但由于该应用程序非常庞大,我无法立即执行此操作。所以我打算将旧应用程序包装到新的symfony应用程序中,并通过功能转换功能。Symfony 1.4和全局变量
这一过渡的第一步是让旧应用出现在新的symfony应用中。所以,我创建了“前端”应用程序,添加了一个“传统”模块,使其成为默认主页,并且我把我在index.php中的所有内容(所有页面都经过了这个index.php)放在indexAction的indexSuccess.php文件。我在“视图”中添加了代码,因为其中还有函数,并且更改该设置会花费比我想要花费在旧应用上更多的时间。
不幸的是我现在有一个全局变量的问题。我给大家举一个例子(我从来没有作出这样的这个寄存器功能,但它的,所以请看看过去的这一点。
$session = new ps_session;
$demo = "this is a demo variable";
$session->register('demo');
在ps_session我有这个方法
public function register($var) {
global $$var;
$_SESSION [$var] = $$var;
}
所以应该将$ demo的内容放在名为“demo”的会话变量中。聪明的权利:)无论如何,var_dumping显示$$ var为“null”,如果在调用函数之前和之后调用var_dump,则$ demo会被填充。完全相同的代码没有symfony,它会返回正确的内容。
我在想什么?全球通话分布在这个庞大的应用程序的所有区域,所以我真的不想切换到其他的东西,所以我希望能够快速修复:)
也许相关,除索引外的所有代码.php内容位于前端/ lib/legacy /文件夹中,索引位于前端/ modules/legacy /(如果有一些范围问题,我缺少)
你在任何时候都使用相同的PHP版本吗? – greg0ire 2010-06-09 14:25:44
是的,5.3.2使用相同的php设置(register_globals on) – Roderik 2010-06-09 14:34:55