zblogphp1.5.0代码分析(1) 从index.php开始

打开 index.php 后,首先加载 c_system_base.php 来初始化相关操作

打开所有的错误报告,打开缓存

定义网站路径和 hookerror 错误常量

定义版本号相关常量11个

将 15 1626 类似的版本写入超全局变量 $GLOBALS['blogversion']

加载同目录下的另外4个基础函数文件 plugin(插件接口相关) debug(错误调试) common(辅助通用函数) event(事件相关函数)

设置自动注册类函数为自己的函数 AutoloadClass函数,当使用的函数未注册时使用该函数注册

定义系统常量,分别是操作系统7个、网站服务器6个、PHP引擎7个、兼容性相关12个、文章类型9个,共41个

定义文章类型超全局数组变量 $GLOBALS['posttype'] array(array(1,2,3))

定义文章状态常量6个

定义命令超全局数组变量 $GLOBALS['actions'] array(1,2,...)

定义数据表超全局数组变量 $GLOBALS['table'] array(1,2,...)

定义数据库结构超全局变量 array(array(array(1,2,...)))

定义4个超全局变量 $_SERVER 相关资料说不建议用

版本兼容性处理,如果 PHP 支持 get_magic_quotes_gpc 且打开了该功能,则使用自己的函数将 $_GET $POST $_COOKIE $_REQUEST 添加的的反斜杠删除

定义系统全局变量 $GLOBALS 8个

将配置文件通过 require 到 $GLOBALS['option'] ,可以在全局中使用 $GLOBALS['option']['xxxx'] 来获取配置数据. 这个配置文件在 zb_system/defend/option.php

配置包括是否关闭网站、网站基本设置、数据库配置、插件、全局配置、静态化等等

接下来判断 如果 ZBP_HOOKERROR 为 false 且有全局环境变量 $_ENV['ZBP_USER_OPTION'] 且这个文件可读,则将其赋值到 $op_users 变量,并将这个数组合并到 $GLOBALS['option'] 全局变量中, 否则如果 zb_users/c_option.php 文件存在,将 zb_users/c_option.php 的数组赋值到 $op_users 变量,并将这个数组合并到 $GLOBALS['option'] 全局变量中

P.S. 我在zblogphp150版本中搜索了很多次,都没有找到哪里有定义 $_ENV['ZBP_USER_OPTION'] 这个变量的!

接下来将 $GLOBALS['option'] 里的一些数据赋值到 $GLOBALS 的网站信息,包括 博客标题,博客名称,博客主题什么的...

然后开始系统实例化,使用 AutoloadClass函数 (这个函数在 zb_system/function/common.php 文件中,前面有个插件中断方式的,只要不是return就能加载对应类,待研究) 来实例化位于 zb-system/function/lib下的类函数.这里依次加载了 zbp全局操作类、SQL语句生成类、配置类

然后通过

$GLOBALS['zbp'] = ZBlogPHP::GetInstance();

$GLOBALS['zbp']->Initialize();

初始化 $zbp

最后加载主题和插件APP:

如果能读取到博客主题的 theme.xml ,则将 博客主题名称 赋值到 $GLOBALS['activedapps'][]

如果能读取到博客主题的 include.php ,则将这个文件加载进来(主题插件的)

获取需要激活的插件名称数组,赋值到 $aps

然后依次将插件名称放入 $GLOBALS['activedapps'][] 以及加载对应的 include.php 文件(主动方式插入注册)

foreach 循环执行插件的函数

最后的最后将使用过的变量销毁 c_system_base.php 结束

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342

推荐阅读更多精彩内容