以index.php首页为例,来分析程序的执行过程,脚本语言用包含切割方式来使程序模块化,java在这里就比较严谨,但是明显不如PHP来得简单。
Index.php包含了./include/common.inc.php;./include/forum.func.php;以及模板文件template('discuz');
需要说明的是discuz!的模板不像一般标准的模板引擎,采用模型推入,模板渲染两步把模板功能很清晰的分开,如smarty。而是利用一个包含功能,把所有页面显示的工作交给一个可以模板化处理的php文件。
Common.inc.php,故名思意,是通用功能的所在地,具体包括哪些呢:
1)./include/global.func.php全局函数(认证码,字符串操作,Cookie处理,日志,分页…)
2)机器人处理
3)./config.inc.php配置信息读取(数据库、email、防攻击、安全)
4)/include/security.inc.php防攻击处理
5)./include/db_'.$database.'.class.php数据库类
6)/forumdata/cache/cache_settings.php读取缓存设置,这个是程序在运行时生成的PHP数组。
7)负载控制
8)在线用户处理
9)更新缓存
10)插件包含
11)广告
12)用户访问控制
Forum.func.php就是对论坛操作的常见函数了。
继续,在index.php页面中设置了$discuz_action = 1;这个是定义此控制器的标识号,然后是处理此页面的缓存,接下来就是获取首页内要显示的东西了,最后会员,新贴计算,RSS,热门标签,公告,论坛。
其中,Discuz!复杂之处在于缓存的方案, Like others
Tuesday, October 09, 2007, 02:15:05 PM (CST)
评论功能有Bug?