achievo调用过程
一个请求过来
http://3g.d.xiaonei.com/achievo/index.php?atknodetype=LBS.chartLbsProvince&atkaction=report&atklevel=-1&atkprevlevel=0&
1、index.php
2、atk.ui.atkindexpage
generate()
atkGenerateDispatcher()
$controller = &atkinstance("atk.atkcontroller");
$controller->invoke("loadDispatchPage", $this->m_defaultDestination);
3、atk.atkcontroller
一个请求过来
http://3g.d.xiaonei.com/achievo/index.php?atknodetype=LBS.chartLbsProvince&atkaction=report&atklevel=-1&atkprevlevel=0&
1、index.php
2、atk.ui.atkindexpage
generate()
atkGenerateDispatcher()
$controller = &atkinstance("atk.atkcontroller");
$controller->invoke("loadDispatchPage", $this->m_defaultDestination);
3、atk.atkcontroller
function invoke($methodname)
{
$arguments = func_get_args(); // Put arguments in a variable (php won't let us pass func_get_args() to other functions directly.
// the first argument is $methodname, which we already defined by name.
array_shift($arguments);
$node = &$this->getNode();
if ($node!==NULL && method_exists($node, $methodname))
{
atkdebug("atkcontroller::invoke() Invoking '$methodname' override on node");
// We pass the original object as last parameter to the override.
array_push($arguments, $this);
return call_user_func_array(array(&$node, $methodname), $arguments);
}
else if (method_exists($this, $methodname))
{
atkdebug("atkcontroller::invoke() Invoking '$methodname' on controller");
return call_user_func_array(array(&$this, $methodname), $arguments);
}
atkerror("atkcontroller::invoke() Undefined method '$methodname' in atkController");
}