本人目前刚刚PHP入门,之前一直都是写Disucz模板,今天看到一些文章就来记录下Discuz x2 源码分析的分享。

就说home.php吧,先是加载discuz程序框架:

require_once './source/class/class_core.php';
require_once './source/function/function_home.php';

Discuz X2 源码采用重新编写的 MVC 框架。

require_once libfile('home/'.$mod, 'module');
libfile() 函数位于 /source/function/function_core.php
function libfile($libname, $folder = '') {
$libpath = DISCUZ_ROOT.'/source/'.$folder;
if(strstr($libname, '/')) {
list($pre, $name) = explode('/', $libname);
return realpath("{$libpath}/{$pre}/{$pre}_{$name}.php");
} else {
return realpath("{$libpath}/{$libname}.php");
}
}

第一句话
require_once libfile('home/'.$mod, 'module');
加载source文件夹下module文件夹里面的home下的home_$mod.php

执行数据库查询
$friendlist = array();
$query = DB::query("SELECT * FROM ".DB::table('home_friend')." WHERE uid='$space[uid]'");
while ($value = DB::fetch($query)) {
$friendlist[$value['fuid']] = 1;
}

O了,就是这样一个过程,学习的过程就是对源码的分析过程,多看多想就会慢慢明白。