forward先からforward元を知りたい場合

わざわざRequestに突っ込むのもアレなので、何とか方法はないかと思案中。
主にforward先からforward元のactionを取り出してメソッドを呼び出す為。
ExecutionChainの中身を見てもindexを外側から知る方法がない。
やっぱりdebug_backtraceで取り出すくらいしかないんだろうか。
debug_backtraceはphp-4.2.x以前で動かなくなるのでちょっと悩む。

      • -

追記:2006/02/26

    var $chain;
    function ExecutionChain ()
    {
        $this->chain = array();
    }
    function addRequest ($modName, $actName, &$action)
    {
        $this->chain[] = array('module_name' => $modName,
                               'action_name' => $actName,
                               'action'      => &$action,
                               'microtime'   => microtime());
    }
    function & getAction ($index)
    {
        if (sizeof($this->chain) > $index && $index > -1)
        {
            return $this->chain[$index]['action'];
        }
    $null = NULL;
        return $null;
    }
    function getActionName ($index)
    {
        if (sizeof($this->chain) > $index && $index > -1)
        {
            return $this->chain[$index]['action_name'];
        }
        return NULL;
    }
    function getModuleName ($index)
    {
        if (sizeof($this->chain) > $index && $index > -1)
        {
            return $this->chain[$index]['module_name'];
        }
        return NULL;
    }

ExecutionChainから取り出す事で可能っぽいですね。
実際には

$execChain =& $controller->getExecutionChain();
$modName = $execChain->getModuleName($execChain->getSize() - 2); // 1個前のモジュール名

こんな感じでしょうか。