博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
DiscuzX2.5 程序底层架构
阅读量:6284 次
发布时间:2019-06-22

本文共 869 字,大约阅读时间需要 2 分钟。

程序底层架构

• 要求PHP版本大于5.1,抛弃了对PHP4的支持

• 大量使用了面向对象编程(OOP)

• 实现了程序运程过程中按需加载,按需加载主要是针对类文件

• 对目录名、文件名和类名的要求

类文件存在在/source/class 目录中,类名和文件名相同,一个类一个文件,类名以下划线(_)分隔,第一个下划线之前部分为目录名,没有下划线的类名直接放/source/class/目录下。

产品中个别特殊类由于历史原因无法实现自动加载,需手动处理 include或require

• class_core.php 流程控制的说明

class_core.php是入口启动文件,主要实现了以下功能:

1、注册autoload方法和异常处理方法;

2、C::t方法的实现;

3、memory的初始化;

4、创建discuz_application实例(discuz_application是原来discuz! X2的discuz_core);

// 现在的 discuz_core 是个空壳子而已
class discuz_core extends discuz_application {
}

5、简写类的映射:

class C extends core {}

class DB extends discuz_database {}

• function_core.php 减肥之术

function_core.php是系统的核心函数库文件,随着系统功能的丰富,函数库越来越大,慢慢地变成了系统快速启动的负担,为此我们将function_core中的函数按功能拆分到不同的类文件中,实现程序的按需加载; 原有函数名保留不变,做相应类静态方法的映射,兼容产品和插件的用法。

具体做法是在source/class目录增加两个目录,helperlibsource/class/helper目录中的文件为函数的分类集合,类的静态方法,可直接使用不用实例化, source/class/lib目录中的文件为工具类的集合类文件,使用时需实例化。

 

转载地址:http://qjxva.baihongyu.com/

你可能感兴趣的文章
Web基础架构:负载均衡和LVS
查看>>
Linux下c/c++相对路径动态库的生成与使用
查看>>
SHELL实现跳板机,只允许用户执行少量允许的命令
查看>>
SpringBoot 整合Redis
查看>>
2014上半年大片早知道
查看>>
Android 6.0指纹识别App开发案例
查看>>
正文提取算法
查看>>
轻松学PHP
查看>>
Linux中的网络监控命令
查看>>
this的用法
查看>>
windows下安装redis
查看>>
CentOS7 yum 安装git
查看>>
启动日志中频繁出现以下信息
查看>>
httpd – 对Apache的DFOREGROUND感到困惑
查看>>
分布式锁的一点理解
查看>>
idea的maven项目,install下载重复下载本地库中已有的jar包,而且下载后jar包都是lastupdated问题...
查看>>
2019测试指南-web应用程序安全测试(二)指纹Web服务器
查看>>
树莓派3链接wifi
查看>>
js面向对象编程
查看>>
Ruby中类 模块 单例方法 总结
查看>>