zoukankan      html  css  js  c++  java
  • discuz!2.5 论坛架构(一)

    目录结构
    /┬── 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服务端程序

    自动加载:
    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是入口启动文件,主要实现了以下功能:

    • 注册 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{}

    以上为摘录。

  • 相关阅读:
    物流能力和综合层次结构
    new Eclipse 3.0+Lomboz 3.0+Tomcat 5.0.16配置
    30件你不知道可以通过Internet来办到的事
    《网上苏州》电子地图建设方案
    IT从业人员必看的10个论坛
    非常在线网站站长自述创业经历
    防止对 Visual Basic .NET 或 C# 代码进行反相工程
    略论中国人的思维方式
    C# vs. Java:相反的思维方式 (译文)
    Java多线程编程经验谈
  • 原文地址:https://www.cnblogs.com/zhaozhilu/p/3581780.html
Copyright © 2011-2022 走看看