我有一個非常古老的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