将新的上下文变量添加到锂\ template \ view \ adapter \ File

时间:2014-08-18 21:26:30

标签: php lithium

我希望复制$this->head()$this->scripts()处理程序的功能以添加$this->footer()。我知道我可以使用Renderer::handlers()注册一个新的处理程序,但我不确定如何扩展File :: $ _ context属性以添加新的footer上下文。

到目前为止,我假设我将下面的代码段添加到Html帮助器中。

protected function _init() {
    parent::_init();

    if ($this->_context) {
        $ctx =& $this->_context;

        $this->_context->handlers(array(
            'footer' => function($footers) use (&$ctx) {
                    return "\n\t" . join("\n\t", $ctx['footer']) . "\n";
                }
        ));
    }
}

也许我过度思考它,并且应该扩展我的Html助手来复制功能。

1 个答案:

答案 0 :(得分:0)

我没有对此进行测试,但__call()方式有效,您应该可以在$this->_context += ['footer' => []]内说_init(),然后调用$this->footer("Foo!")进行追加。

当您准备渲染时,$this->context("footer")应该会返回一组值。