作者HuangJC (吹笛牧童)
看板PHP
標題Re: [CakePHP] 請問 $session 怎麼產生的?
時間Sun Jul 13 21:00:27 2008
※ 引述《HuangJC (吹笛牧童)》之銘言:
: trace CakePHP 時,第一步就被它卡死了 ~^_^~
: $session->read
: 這時馬上全域搜尋 $session 這個字串,想看它什麼時候被 new 出來
: 結果,完全找不到!!
這個問題我自己回一下
原來搜尋的技巧錯了
因為這不是一種 Compile 語言,而是 Script
很方便,但也很不適合用全域搜尋去找
比如有一次我找的函式,它是被湊出來的(記得是 phpbb3)
當天找得我很慘;類似這樣
$check='string';
$validfunc='valid_' . $check;
$validfunc(); //其實會執行 valid_string()
(註一,產生新的問題)
當我從半路猜中 valid_string 有被執行時
開始瘋狂的全域搜尋 valid_string
..永遠也找不到啦~~~
這也就是為什麼我想問有沒有堆疊追蹤指令
不然會死人 *_*
回原題,我想知道何時被 new,可能還要一些技巧
但想知道被 new 出什麼,
print_r($session);
就好了..唉..
然後呢,本例而言我得到 Session Object 這個回應
而我大概是找不出何處 new 它的
因為不一定存在一道 new Session 指令
它也可以是組合字串 ~^_^~
$a='S';
$a .= 'ssion';
$session=new $a;
就這麼簡單,就足以讓何時 new Session 變得找不到 ~^_^~
威力強大同時帶來難以 TRACE 的困擾 XD
不過它先寫前端,不必完整 implement後端的特性(我的字眼有點怪 :P)
真是太迷人了 XD
昨天加班到凌晨四點,我快死了...
;;
註1:
$validfunc(); //這樣其實會執行 valid_string();
call_user_func($validfunc); //這樣也會
說真的,我的問題就是
幹麻多發明這個函式?
有點像盲腸.
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.59.179.152
※ 編輯: HuangJC 來自: 61.59.179.152 (07/13 21:03)
→ bcse :要堆疊追蹤可試試Xdebug,應該有你想要的 07/13 23:36
→ HuangJC :...是洋蔥..讓我流下了感動的眼淚 ~^_^~ 07/14 00:23