专注于高品质PHP技术等信息服务于一体 [STIEMAP] [RSS]

百度提供的广告:
PHP
当前位置:首页 > 技术文档 > PHP >  > 
Discuz! X2 源码分析

Discuz! X2 源码分析
受客户委托改 Discuz! X2 以下简称 x2 个人空间模板,由于原来没有改过,网上资料又很少。决定分析一下源码,下面是随笔记录。
请求地址 /home.php
主要是加载 dz程序框架。

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

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");
    }
}
就是加载 source 下面的文件
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;
        }
里面是一大堆的查询。X2  代码感觉写的不咋得,还不如 ECSHOP 起码代码明了可读性强。