模板的执行是一个2阶段的过程,这个过程充分利用了PHP解析器为模板设计师提供了相当大的灵活性和性能。模板JDocument对象作用域中执行,$this是JDocument对象的实例。
模板执行开始之前,组件和模块都已执行,他们的输出保存缓冲区中,以便日后使用。
模板执行的过程如下:
-
- 加载模板参数
- 加载模板语言
- 如果legacy模式,拷贝配置变量作为全局变量。
- 模板文件( index.php )被加载并执行,输出结果放在缓冲区中。这是第1阶段。在< ? PHP和? >标签中的代码都被执行。这个过程中输出都放在缓冲中,没有内容输出到客户端。
- 接下来寻找favicon.ico,首先是在joomla !根目录,然后在模板根目录.
- 接下来用第一阶段中生成的模块内容填充<jdoc:include>,每个模块采用适当的渲染器进行渲染,渲染后的输出替换<jdoc:include>元素。
- 模板中指定的一些 HTTP headers 添加到头部输出中。
- 最后控制器将控制权交回JApplication,JApplication返回数据给客户端。
- 输出,这是在缓冲期1目前解析为<jdoc:include>元素。每个jdoc元素发现,适当的渲染工人阶级是装货和其提供的方法是所谓的。产量从render方法取代<jdoc:include>元素自身在输出缓冲。
- 某些模板特定的HTTP标头是列入名单的头变成了生产量。
- 控制,然后通过返回到japplication对象一定要处理,其余的过程中获得,现在所提供的网页返回给客户端浏览器。