Discuz!目录结构

推荐视频教程----->Discuz插件开发实战视频  Discuz模板制作视频教程(实战篇)

下面是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! X2.5要求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 {}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux目录结构是一种树型结构,根目录为/,每个目录都有其特定的作用和用途。以下是各个目录的作用及注意事项: 1. /bin:系统基本应用程序存放目录,如ls、cp、mv等。注意:这些程序一般都是系统启动时就需要用到的,所以不能随便删除或更改。 2. /boot:系统启动相关文件存放目录,包括内核文件(vmlinuz)、引导程序(grub等)和启动配置文件(grub.conf等)等。注意:这些文件一般都是系统启动时需要用到的,所以不能随便删除或更改。 3. /dev:设备文件目录,包括硬件设备、虚拟设备和伪设备等。注意:这些文件一般都是系统自动创建和管理的,不能随便删除或更改。 4. /etc:系统配置文件目录,包括系统启动配置文件、网络配置文件、用户账号配置文件等。注意:这些文件一般都是系统启动时需要用到的,不能随便删除或更改。 5. /home:普通用户的家目录,每个用户都有一个独立的家目录,用于存放用户的个人文件和配置文件等。注意:每个用户只能访问自己的家目录,不能访问其他用户的家目录。 6. /lib:系统动态链接库存放目录,用于支持系统运行和应用程序的链接。注意:这些文件一般都是系统启动时需要用到的,不能随便删除或更改。 7. /media:可移动设备挂载点目录,包括光驱、U盘、移动硬盘等。注意:不要随便拔出设备,要先卸载才能拔出。 8. /mnt:临时挂载点目录,用于挂载其他文件系统或网络共享等。注意:挂载前要先创建挂载点目录。 9. /opt:第三方应用程序安装目录,一般是一些商业软件或专业软件的安装目录。注意:一般情况下不建议在此目录下安装软件,应该使用包管理器进行安装。 10. /proc:虚拟文件系统目录,用于提供内核和进程信息。注意:这些文件都是虚拟的,不能随便更改。 11. /root:超级管理员的家目录,与普通用户的家目录类似,用于存放管理员的个人文件和配置文件等。注意:只有超级管理员才有权限访问此目录。 12. /run:运行时数据目录,用于存放系统运行时生成的临时文件和进程信息等。注意:这些文件都是运行时生成的,系统重启后会被清空。 13. /sbin:系统管理程序存放目录,如shutdown、reboot等。注意:这些程序只有超级管理员才有权限使用。 14. /srv:服务数据目录,用于存放一些网络服务所需的数据文件、网页等。注意:一般情况下不建议在此目录下存放用户文件。 15. /sys:虚拟文件系统目录,用于提供系统硬件信息。注意:这些文件都是虚拟的,不能随便更改。 16. /tmp:临时文件目录,用于存放系统和应用程序运行时生成的临时文件。注意:这些文件可以随意删除,系统重启后会被清空。 17. /usr:系统资源目录,包括用户程序、库文件、帮助文档等。注意:这些文件一般都是系统安装后就存在的,不能随便删除或更改。 18. /var:系统变量目录,包括日志文件、邮件、缓存等。注意:这些文件一般都是系统运行时生成的,可以随意删除,但不会影响系统正常运行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值