Joomla模板开发-模版是如何执行的
在本节中我们要解决的问题是 joomla的模版是怎样被执行的。
joomla模版分两个阶段来执行的。因为模版通常是在document对象中执行的,所以在模版中的$this对象就是代表了JDocument类。
在模板开始执行之前,组件会先被执行,并且将他生成的输出缓存起来。留待稍后使用。
模版的执行具体过程:
1、如果模板存在参数,就加载模版的参数
3、检查是否开启了兼容模式,如果开启了兼容模式,那么就将配置变量复制到全局空间中
4、PHP开始加载模版的index.php文件。并且执行index.php文件。将输出的结果缓存起来。
到此为止,就完成了模版的第一阶段。在<?php 和?>之间的代码都被作为php代码进行执行。在这个标签之外的代码就被直接输出。由于输出是在缓存中,所以在这个阶段中客户端浏览器并不会输出任何东西。
5、开始寻找favicon.ico文件。开始在joomla的根目录下寻找,然后在模版的根目录下寻找,如果在模版中找到了favicon.ico文件,那么就将前者进行覆盖。
6、分析第一阶段缓存的内容,开始解析<jdoc:include>元素。这就标志进入了第二阶段。对于每一个找到的jdoc元素,对 应的渲染类将被自动加载,并且调用这个类的render方法,进行渲染。渲染类输出的内容将会替换<jdoc :include>中的内容。在模型的渲染类中将会触发模块的执行,并且加执行结果进行缓存。(注:所谓的渲染就是输出html代码)
7、指定的模版头被添加到模版的输出头列表中
8、系统将控制权交给JApplication对象,这个对象将会负责处理获得新的页面,并且将新的内容返回给浏览器。
这样整个输出过程就完成了。
我们需要思考的问题是,这个过程说明了什么?
对我们写代码有什么帮助?
首先这段话解释了模板文件的$this代表了什么,他代表了JDocuemnt。那么也就是说我们可以在模板的主文件中操作文档对象。比喻说得到当前文章的标题都很容易做到。另一方面,他也说明了一个执行顺序的问题。首先会执行php代码,然后才解析<jdoc:include>标签。
这是我们的网站http://www.zmax99.com,里面有很多免费的开源资料,欢迎joomla爱好者前去下载。zmax程序人-----中国joomla开发团队!
原文地址:http://10007960.blog.51cto.com/9997960/1632794