zoukankan      html  css  js  c++  java
  • DiscuzX2.5 程序底层架构

    程序底层架构

    • 要求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目录中的文件为工具类的集合类文件,使用时需实例化。

  • 相关阅读:
    补习系列(4)-springboot 参数校验详解
    华为鲁勇:5G+云+AI三大核心引擎将驱动广州数字经济发展
    selenium firefox
    徐翔之后新生代“敢死队”浮出水面:八年一万倍
    ActiveMQ讯息传送机制以及ACK机制
    一元线性回归分析及java实现
    jsoup -- xml文档解析
    HDU 1020 Encoding 字符串
    PHP缓存之文件缓存
    Eclipse PHPEclipse 配置
  • 原文地址:https://www.cnblogs.com/52php/p/5666420.html
Copyright © 2011-2022 走看看