| 下面是Discuz! 的文件目录及对应的描述。日常的开发中主要会涉及到source和template目录。虽然目录和文件都很多,但是实际上结构还是很清晰,大多数情况下通过文件名和目录就能知道某个文件的作用。比如:        \source\class\discuz\discuz_censor.php  用来处理敏感词过滤的类        \source\function\function_credit.php  处理积分操作的函数库        \source\module\forum\forum_viewthread.php 处理帖子显示页面的模块 另外,source目录下的class、function、module、include、admincp这几个文件夹下的程序文件命名要遵守如下规则:文件名前缀为所在目录的名字加上下划线(_) 目录结构详细: /┬── api 外部接口  │      ├── connect    腾讯互联  │      ├── db  UCenter数据库备份接口  │      ├── google     Google引擎使用  │      ├── javascript 数据和广告的 JS调用  │      ├── manyou     manyou应用及搜索等相关服务  │      └── trade      在线支付接口  ├── archiver  论坛静态化  ├── config    站点配置文件  ├── data      数据缓存及附件  │      ├── attachment 上传的文件目录  │      │      ├── album 相册专用  │      │      ├── block DIY专用  │      │      ├── common      公共上传  │      │      ├── forum 论坛附件专用  │      │      ├── group 群组图标和头部图片专用  │      │      ├── portal      门户上传文件专用  │      │      ├── profile     个人资料专用  │      │      └── temp 临时文件  │      ├── avatar     视频认证专用  │      ├── backup     站点数据备份  │      ├── cache      数据缓存  │      ├── diy DIY模块缓存  │      ├── ipdata     Discuz!IP库  │      ├── log 站点日志,前/后台管理日志、错误日志等  │      ├── plugindata 插件缓存数据  │      ├── template   模板缓存目录  │      └── threadcache 帖子缓存  ├── install 安装目录  ├── source 代码主目录  │      ├── admincp    后台程序  │      │      ├── cloud Discuz!云平台  │      │      ├── menu 菜单  │      │      └── moderate    审核功能  │      ├── archiver   论坛静态化功能代码  │      ├── class      类文件目录  │      │      ├── adv  站点广告功能  │      │      ├── block DIY模块功能文件  │      │      ├── cache 缓存类  │      │      ├── db   数据库类  │      │      ├── discuz      discuz类  │      │      ├── forum 论坛  │      │      ├── helper      存放从function_core分离出来的一部分函数  │      │      ├── lib  工具类的集合类  │      │      ├── magic 道具  │      │      ├── memory      内存类  │      │      ├── secqaa      验证问答  │      │      ├── table 数据表操作类  │      │      └── task 站点任务功能  │      ├── function   函数文件  │      │      └── cache 缓存功能拆分目录  │      ├── include    被包含的文件  │      │      ├── collection  淘帖  │      │      ├── cron 计划任务  │      │      ├── misc 杂项  │      │      ├── modcp 前台论坛管理  │      │      ├── portalcp    前台门户管理  │      │      ├── post 帖子相关  │      │      ├── search      搜索功能  │      │      ├── space 家园和个人相关功能  │      │      ├── spacecp     个人设置相关  │      │      ├── table 编码转换数据  │      │      ├── thread      查看主题相关  │      │      └── topicadmin  前台主题管理  │      ├── language   站点语言包  │      │      ├── adv  广告  │      │      ├── block DIY模块  │      │      ├── forum 论坛  │      │      ├── group 群组  │      │      ├── home 家园  │      │      ├── magic 道具  │      │      ├── member      登录注册页面语言  │      │      ├── mobile      手机访问功能语言  │      │      ├── portal      门户语言  │      │      ├── ranklist    排行榜语言  │      │      ├── search      搜索  │      │      ├── secqaa      安全问答  │      │      ├── tag  标签  │      │      ├── task 任务  │      │      └── userapp     manyou应用  │      ├── module     功能模块  │      │      ├── connect     腾讯互联  │      │      ├── forum 论坛  │      │      ├── group 群组  │      │      ├── home 家园  │      │      ├── member      登录注册  │      │      ├── misc 杂项  │      │      ├── portal      门户  │      │      ├── search      搜索  │      │      └── userapp     应用  │      └── plugin     插件目录  │              ├── cloudstat   Discuz!云平台  │              ├── myapp      Manyou应用  │              ├── myrepeats   马甲功能  │              ├── qqconnect   腾讯互联  │              └── soso_smilies       腾讯搜搜表情  ├── static    非PHP文件  │      ├── image      界面图片  │      ├── js  站点JS脚本  │      ├── space      空间皮肤  │      └── topic      门户皮肤  ├── template  模板目录  │      └── default    默认风格  ├── uc_client UCenter客户端程序  └── uc_server UCenter服务端程序 自动加载 Discuz! X3.4 X3.3 X3.2要求PHP版本大于5.1,抛弃了对PHP4的支持,因此支持更多的PHP新特性,自动加载类文件就是其中一个。在class_core.php中有这样一段代码: if(function_exists('spl_autoload_register')) {        spl_autoload_register(array('core', 'autoload')); } else {        function __autoload($class) {               return core::autoload($class);        } } 当调用不存在的类的时候就会调用core::autoload方法来加载相应的类文件。所以我们在开发的过程中就要用到某个类的时候就不需要include或者require了。只要对应的类文件存在,并且命名符合规范,直接调用即可。注意:产品中个别特殊类由于历史原因无法实现自动加载,需手动处理 include或require
 class_core.php 流程控制的说明 class_core.php是入口启动文件,主要实现了以下功能: §  注册 autoload 方法和异常处理方法:具体参见自动加载 §  C::t 方法的实现:通过 C::t 方法来调用数据层对应表的对象来实现对数据的操作 §  memory 的初始化:主要由 discuz_memory 类来实现 §  创建 discuz_application 实例 ( discuz_application 是原来 discuz! X2 的 discuz_core):进行核心的初始化操作,主要有加载配置文件、加载环境变量、连接数据库、加载setting信息、初始化用户数据、session的初始、计划任务等 §  简写类的映射:将 class core 映射为 C,discuz_database 映射为 DB,仅为方便使用,代码如下 class C extends core {} class DB extends discuz_database {}   
 
 
 |