我希望复制$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
助手来复制功能。
答案 0 :(得分:0)
我没有对此进行测试,但__call()
方式有效,您应该可以在$this->_context += ['footer' => []]
内说_init()
,然后调用$this->footer("Foo!")
进行追加。
当您准备渲染时,$this->context("footer")
应该会返回一组值。