論壇的主頁面爲forum.php,論壇的各個功能都以此爲入口,而後請求參數mod指定子模塊。php
forum.php 的代碼並很少,結構簡單。裏面引用了兩個文件./source/class/class_core.php 和 ./source/function/function_forum.php。app
class_core.php 封裝了discuz_application,封裝了discuz運行環境的初始化工做。(後面專門討論這個)框架
function_forum.php 裏面基本都是與論壇相關的各個功能。函數
$modarray 、 $modcachelist 定義了各個子模塊的名稱。ui
以後就是discuz_appclication(即C::app())的構建和初始化工做。在app初始化以後,開加載forum,加載論壇的主框架。而後是rss受權的,以後是運行鉤子,能夠理解爲加載鉤子。blog
最後require DISCUZ_ROOT.'./source/module/forum/forum_'.$mod.'.php'; 來把請求交給子模塊來處理。代碼以下圖,有註釋。io
從forum.php來看,對discuz基本運行環境就好了封裝,封裝爲C::app()。但對forum來講,依然是代碼式、函數式的。既然模塊都劃分處理了,徹底能夠定義一個forum的模塊類,而後實例化來處理請求。鉤子
相似於 class forum extends module{} ,而後全部的事情都交由forum來處理便可,若是想重構,這卻是個不錯的思路。function