产品框架

目录组织

目录组织

下面是足球论坛 的文件目录及对应的刻画。日常的开垦中主要会触及到source和template目录。足球交流吧。虽然目录和文件都很多,但是现实上组织还是很清晰。

	\source\class\discuz\discuz_censor.php  用来经管迟钝词过滤的类
	\source\function\function_credit.php  经管积分操作的函数库
	\source\module\forum\forum_viewthread.php 经管帖子显示页面的模块
另外。

目录组织详细:
/┬── 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	足球论坛IP库
 │      ├── log	站点日志,前/后台管理日志、差池日志等
 │      ├── plugindata	插件缓存数据
 │      ├── template	模板缓存目录
 │      └── threadcache	帖子缓存
 ├── install 装配目录
 ├── source 代码主目录
 │      ├── admincp	后台法度模范
 │      │      ├── cloud	足球论坛云平台
 │      │      ├── 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	足球论坛云平台
 │              ├── myapp	Manyou应用
 │              ├── myrepeats	马甲功效
 │              ├── qqconnect	腾讯互联
 │              └── soso_smilies	腾讯搜搜表情
 ├── static	非PHP文件
 │      ├── image	界面图片
 │      ├── js	站点JS脚本
 │      ├── space	空间皮肤
 │      └── topic	门户皮肤
 ├── template	模板目录
 │      └── default	默许气派
 ├── uc_client	UCenter客户端法度模范
 └── uc_server	UCenter任职端法度模范

自动加载

足球论坛 X2.5要求PHP版本大于5.1,足球交流吧。因此支持更多的PHP新特性,?掉了对PHP4的支持。

if(function_exists('spl_autoload_register')) {
	spl_autoload_register(array('core', 'autoload'));
} else {
	function __autoload($class) {
		return core::autoload($class);
	}
}

当调用不生计的类的工夫就会调用core::autoload门径来加载相应的类文件。所以我们在开垦的进程中就要用到某个类的工夫就不需要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 {}