包含标签 Typecho 源码分析 中的文章

Typecho 源码分析(10)-- DoAction 分析

前情提要 前面我们分析了插件列表,看到 html 部分,我们看到了请求的url 包含 action 我们这篇就分析这里。 正文开始 在做到插件启用相关部分的时候。发现了一个链接, 1 http://typecho.test/index.php/action/plugins-edit?activate=HelloWorld&_=a05deb76f571cfb798d3904cc6cecf77 这块我就比较好奇了,为什么跟首页部分的不太一样吗,难道是又包装了一层?我们从路由分发来看一下。 1 2 array(6) { ["url"]=> string(22) "/action/[action:alpha]" ["widget"]=> string(9) "Widget_Do" ["action"]=> string(6) "action" ["regx"]=> string(32) "|^/action/([_0-9a-zA-Z-]+)[/]?$|" ["format"]=> string(10)……

阅读全文

Typecho 源码分析(9)-- 部分Security&User 组件分析

前情提要 前面我们分析了插件列表,但是 html 部分我们没有分析,今天我们就来分析一下 url 生成部分。 正文开始 后台的 common.php 会加载 Security 组件。 先看 Security 的 execute 方法, 1 2 3 4 5 6 7 8 9 10 11 12 13 14 /** * 初始化函数 * */ public function execute() { $this->_options = $this->widget('Widget_Options'); $user = $this->widget('Widget_User'); $this->_token = $this->_options->secret; if ($user->hasLogin()) { $this->_token .= '&' . $user->authCode . '&' . $user->uid; } } 首先会加载 Options ,然后会加载 User 组件。 我们再去看 User 组……

阅读全文

Typecho 源码分析(8)-- 后台插件列表

前情提要 前面 7 篇文章基本上已经分析完成 Typecho 的运行流程了,从本篇开始就开始分析各种模块了,原本是想分析路由的,但是我更对插件感兴趣,所以就从插件开始了。 正文开始 我们先不分析插件的加载流程,因为我们还没有启用任何插件,所以我们从后台的插件列表开始。我们打开 admin\plugins.php 文件。前面的几行加载我们稍后……

阅读全文

Typecho 源码分析(7)

题外话 两周之前搬了家,以前搬家从来没觉得东西这么多,收拾起来这么麻烦,基本上整理整理就可以过日子了。这次换了个整租,才发现屋子大了也不好,东西找不到,现在基本上算是步入正轨了,不过nas还没有就位,等我再整理整理在看看吧nas放到哪里。机械硬盘实在是太吵了,这次要放到一个安静的地……

阅读全文

Typecho 源码分析(6)

前情提要 上一篇说了一下插件相关的东西,可是发现插件需要很多东西去说,于是就没说全,因为还是要抓紧把全部流程跑通,所以就省略下来了,这篇我们说一下路由相关的。等这个说完,等于就把全部流程跑通了。后面我们就可以展开来说各种模块了。 正文开始 1 2 /** 开始路由分发 */ Typecho_Router::dispatch(); index 文件的最后一行了。开始……

阅读全文

Typecho 源码分析(5)

前情提要 上一篇我们已经分析完了组件的初始化相关的东西,今天我们继续。插件部分。 正文开始 1 2 /** 注册一个初始化插件 */ Typecho_Plugin::factory('index.php')->begin(); 进入方法内部 1 2 3 4 5 6 7 8 9 10 11 12 13 /** * 获取实例化插件对象 * * @access public * @param string $handle 插件 * @return Typecho_Plugin */ public static function factory($handle) { return isset(self::$_instances[$handle]) ? self::$_instances[$handle] : (self::$_instances[$handle] = new Typecho_Plugin($handle)); } 就是看插件池有没有这个插件,没有就初始化,如果有……

阅读全文

Typecho 源码分析(4)

上篇文章忘记说的 我们还是在入口文件徘徊,而且还是在初始化 widget 的第一行。我们来到了初始化 Widget_Init 的地方。在 Init->execute 方法中,我们到了初始化 option 的地方。 初始化的构造地方,还初始化了 db 数据库。 数据库连接的地方在,index 文件的引入 config 有构造连接,大家不要忘记哦。 正文开始 我们来看 Option->execute() 方法。 1 2 3 4 5 6 7 8 9……

阅读全文

Typecho 源码分析(3)

前情提要 通过之前我们的分析,我们已经把安装流程搞定了,本篇开始,我们分析前台相关的流程。 正文开始 我们又一次回到了 index.php 在第一篇说完前几行判断是否安装之后,我们就暂时离开了这个文件,当我们安装完以后,进入首页就又回到了这里,我们跳过判断安装那一块,直接看后面。 1 2 3 4 5 6 7 8 9 10 11 /** 初……

阅读全文

Typecho 源码分析(2)

前情提要 上一篇我们分析到了 install.php 文件的 set_include_path。今天我们继续。 进入安装流程 来到了引入 Typecho/Common.php 这样,也许你会很奇怪,找不到这个目录呢?不要忘了我们上面设置了好几个引入路径,所以我们要一个个的查找,最后我们会在 var 目录下,找到 Typecho/Common.php。你看用这……

阅读全文

Typecho 源码分析(1)

先说点前置的东西 从今天开始我要开始写源码分析的文章了,以前用 csdn 博客写过一些 android 和 java 的东西,后来脑袋抽筋被我删除了。所以这次等于是全新的开始,准备输出一些东西了。做了 5 年的开发,发现自己缺乏很多东西,所以这次从源码分析开始,输出东西以及补充自己的知识。 为什么选用 typecho ? 这个博客系统很经典……

阅读全文