虽然HDwiki是一个开源的wiki系统,并且代码简洁易懂,但如果想在系统上做做进一步开发还需要对框架有一个整体的认识。熟悉了HDwiki的框架以后完全可以独立出来做其他功能的开发,当做一个开源的PHP框架来使用。

概要介绍
1. 基于 MVC 体系
2 支持PHP4和PHP5
3. 超轻量级
4. 使用便捷的模版系统
5. 缓存机制
6.支持插件开发
7. 丰富的lib类库包

程序执行流程
  
系统流程图如下:

hdwiki框架简介hdwiki框架简介

HDwiki框架简介-程序执行流程,从开始的index.php文件通过几个重要的文件概要看一下流程。
index.php文件实现了如下功能
1. 设置错误级别
2. 关掉魔法引用(数据库,文件过来的数据)
3. $starttime开始了,设置程序运行时间。
4. IN_HDwiki和HDwiki_ROOT常量定义
5. 包含一个文件 '/model/HDwiki.class.php'
6. 实例化一个对象然后运行。model/HDwiki.class.php
7. 得到MAGIC_QUOTES_GPC的值
包含三个文件,config.php(本系统的基本信息数据库信息、编码等)
                    string.class.php(类库中,对字符串的处理)
                    base.class.php(系统的基础类,重点)
然后就是HDwiki类,构造函数执行了init_request(), load_control()两个方法,实现了如下功能:

init_request():
1. 判断系统是否已经安装 得到url$_SERVER['QUERY_STRING']
2. 把刚才得到的url进行相应的分析处理得到类名,方法名和参数,设定默认的类名,方法名。
3. 把PHP的几个全局变量($GLOBALS, $_ENV, $HTTP_GET_VARS, $HTTP_POST_VARS, $HTTP_COOKIE_VARS, $HTTP_SERVER_VARS, $HTTP_ENV_VARS)用unset释放掉将post、get放到本类的属性中。

load_control():
1. 将上一个方法得到的get、post进一步分析,包含对应的文件。
run()
index.php用到的方法,实例刚才的包含的类,运行相应的方法。
根据url运行control里面的类的方法,此方法又调用了相应的model方法做了对数据的处理。
control方法完成变量和数据的处理后,就通过template类把模版编译进来,统一显示给用户。

base.class.php文件简介
上来就是包含了一堆文件
require HDwiki_ROOT.'/version.php';
require HDwiki_ROOT.'/lib/file.class.php';
require HDwiki_ROOT.'/lib/util.class.php';
require HDwiki_ROOT.'/lib/hddb.class.php';
require HDwiki_ROOT.'/lib/template.class.php';
require HDwiki_ROOT.'/lib/cache.class.php';

本类文件是重点的一个文件类系统中所有的cotrol类都集成了这个类,初始化了所有的系统中使用得到属性和方法。包括,访问的ip、访问时间、初始化用户、数据库操作对象、缓存操作对象、插件列表、模版操作对象等。
并不难理解。
到此关于框架的几个重点文件就都看到了。关于如何初始化数据库,如何初始化模版对象,自己可以看看相应的文件也都很容易理解。
更多可参考HDwiki运行机制和原理一文。

转载于:https://www.cnblogs.com/camelroyu/p/5642853.html

hdwiki 框架简介相关推荐

  1. 【Spring】框架简介

    [Spring]框架简介 Spring是什么 Spring是分层的Java SE/EE应用full-stack轻量级开源框架,以IOC(Inverse Of Control:反转控制)和AOP(Asp ...

  2. 《HiWind企业快速开发框架实战》(0)目录及框架简介

    <HiWind企业快速开发框架实战>(0)目录及框架简介 本系列主要介绍一款企业管理系统快速开发框架,该框架旨在快速完成企业管理系统,并实现易维护可移植的目标. 使用逐个系统模块进行编码的 ...

  3. WPF Interaction框架简介(一)——Behavior

    原文:WPF Interaction框架简介(一)--Behavior 在WPF 4.0中,引入了一个比较实用的库--Interactions,这个库主要是通过附加属性来对UI控件注入一些新的功能,除 ...

  4. go语言学习(二)——Gin 框架简介

    GoWeb开发有很多框架,如Beego.Gin.Revel.Echo.IRis等,学习框架可以快速做开发,对比常见goweb框架,通过其github的活跃度,维护的team,生产环境中的使用率以及师兄 ...

  5. Java开源——常见J2EE框架简介

    Java开源--常见J2EE框架简介 Spring Framework Spring是一个解决了许多在J2EE开发中常见的问题的强大框架. Spring提供了管理业务对象的一致方法并且鼓励了注入对接口 ...

  6. 【EventBus】EventBus 事件总线框架简介 ( EventBus 使用流程 )

    文章目录 一.EventBus 事件总线框架简介 二.EventBus 使用流程 一.EventBus 事件总线框架简介 Android 中的事件传递机制 : 使用 Intent 在组件间传递信息 ; ...

  7. 【Android 热修复】热修复原理 ( 热修复框架简介 | 将 Java 字节码文件打包到 Dex 文件 )

    文章目录 一. 热修复框架简介 1.类替换 2.so 替换 3.资源替换 4.全平台支持 5.生效时间 6.性能损耗 7.总结 二. 将 Java 字节码文件打包到 Dex 文件 一. 热修复框架简介 ...

  8. PHP微信开发框架LaneWeChat框架简介

    框架名称:LaneWeChat 微信PHP开发框架 框架版本:1.4 框架简介:这是一个为快速开发微信应用而生的PHP框架.将微信的开发者功能根据文档进行了封装.为了快速开发的目的,开发者完全不需要要 ...

  9. Spring框架简介

    Spring框架简介 Spring Framework 是一个开源的Java/Java EE全功能栈(full-stack)的应用程序框架,以Apache许可证形式发布,也有.NET平台上的移植版本. ...

最新文章

  1. python androidhelper kivy_学习qpython相关
  2. Python学习总结(一)
  3. 语音识别中的MFCC的提取原理和MATLAB实现
  4. 【渝粤教育】广东开放大学 财会法规和职业道德 形成性考核 (26)
  5. 毕设题目:Matlab图像融合
  6. Google 开通免费主机服务,如果你有email帐户,你就可以注册,目前最多只能存放40页面...
  7. PotPlayer+SVP4视频补帧简易教程
  8. Badboy安装教程(含下载地址)
  9. 什么是信息安全管理体系
  10. matlab结构体、数组和单元数组类型的创建
  11. c++学习记录之多态
  12. x79主板不支持服务器内存条,x79主板支持什么内存
  13. 计算机博士复试英语自我介绍,博士复试自我介绍中英文
  14. 关于启动报错:Field xxxMapper in com.xxx.service.impl.xxxServiceImpl required a bean of type的解决方案
  15. win7计算机摄像头怎么打开,Win7笔记本摄像头怎么打开?Win7笔记本打开摄像头的方法...
  16. php mysql 性能测试工具_MySQL_Sysbench多线程性能测试工具,最近用sysbench进行了较多的性 - phpStudy...
  17. 白牌交换机有哪些特点?和传统交换机比有什么特别?—Vecloud
  18. 机器视觉入门——VisionPro软件简介
  19. 学生党必备好物神器:科大讯飞智能录音笔
  20. 消息模板占位符的使用

热门文章

  1. linux文件安全与权限
  2. 《上海市居住证》积分申请的个人书面材料
  3. 企业微信H5登录流程,以及遇到的问题解决
  4. 家用nas存储,家庭个人云推荐
  5. 芝加哥犯罪率数据集(数据分析与特征处理)
  6. ios是什么,ios是什么意思
  7. 微信小程序简单介绍及例子,小白可看
  8. CVTE嵌入式应用开发长期实习生线上笔试+线上面试(一面)
  9. python制作一个菜单_用CSS打造一个图形化的汉堡菜单
  10. 5分钟搞定 微信早安推送 升级版