在讨论这个问题的细节之前,我想指出我以前从未见过这样做,并且很想知道它是否真的可以做到,如果可以,如何去做。
我目前坐在模板加载器上,为了编写它,我选择稍微调整 HAML 文件格式并使用几个逻辑运算符扩展它 - 主要是循环。为了有效地做到这一点,我需要将参数列表传递给模板解析器......如果可能的话,我宁愿避免这种情况。在为替代方案集思广益时,这个想法出现了,也许,只是也许,可以引用调用函数的范围。
目前,我正在为文件调用模板解析器,如下所示。假设test()
是一条路线。
function test() {
$q = $UserModel->tether($userID)->fetchPermissions();
Util::Templating()->parse("file.haml");
}
我试图避免的是能够访问 $q 而不传递一个非常长的数组作为第二个参数。我最初的想法是,可能有一种方法parse()
可以继承最初调用它的范围(此处,内部test
)而不是拥有自己的范围。有没有办法解决这个问题,如果有,效率如何?