作者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)
1F:→ bcse :要堆叠追踪可试试Xdebug,应该有你想要的 07/13 23:36
2F:→ HuangJC :...是洋葱..让我流下了感动的眼泪 ~^_^~ 07/14 00:23