WordPress的源码阅读笔记

       上周研究了下Wordpress的源码,虽然源码写的不够精细,我们姑且不讨论其代码是否真的如其官网所说“代码如诗”,我们比较感兴趣的是,他的框架是怎样的,他是如何实现的MVC分层,又是如何很方便的扩展插件、主题,让其他人可以简单的参与到开发中来。

       我们从前台的Index.php入手,找到入口文件wp-blog-header.php文件,wp-load.php主要是一些判断和初始化工作,template-loader.php文件则主要是显示整个网站的内容。实际的初始化内容在wp-settings.php中,这个也是整个系统的核心所在。他进行了一系列的check,定义相应的类,最后加载模板文件的首页文件,交予模板文件处理。

     整个系统的实现自由扩展,很大程度“依赖于执行挂钩、动作和过滤器 ”,关于这个话题可以参考官方的说明,http://codex.wordpress.org/Plugin_API,这个理解了,才能更好的把握Wordpress的东西,因为整个系统都与他有关!

WordPress 中有一种叫执行挂勾的机制,允许插件把一些功能“挂载”到 WordPress 当中。也就是说,在系统运行至某一个环节时,去调用插件内的一些函数。执行挂勾分为两种:

  1. 动作 (Action): 动作是 WordPress 运行到某些环节,或者在某些事件发生时,就会被执行的一种挂钩。任何的插件都可以通过动作接口来指示系统在遇到这些环节或者事件的时候,就执行指定的 PHP 函数。
  2. 过滤器 (Filter):过滤器的是 WordPress 用于修改即将要保存或者发送出去的数据的一种挂钩。任何的插件都可以通过过滤器接口来指示系统在遇到某些环节或者事件的时候,就执行指定的 PHP 函数去修改特定的数据。

某些时候动作或过滤器可以达到相同的效果。比如要修改文章的内容,可以把插件挂载到动作 publish_post 上,在文章的内容保存到数据库前就修改它。也可以把插件挂载到过滤器 the_content 上,在文章的内容发送到浏览器前修改它。

继续阅读“WordPress的源码阅读笔记”

PHP工具之CodeSniffer

PHP编码有很多工具,为我们带来很多便利,比如IDE、Debug工具,PHP单元测试工具等,对于CodeSniffer因为需要,有一定的研究,现在写出来,记录一下,以供以后需要。

工具简介

众所周知,统一的编码风格,不仅使你所写的代码清爽大气,也使无论是你本人,还是其他人,更容易阅读。那么一个统一的编码风格是怎么样的呢?他主要分为以 下几个方面,php标签、变量的命名、每一行的长度、缩进方式、控制语句以及函数的调用等等,具体的标准可以参考Expert PHP 5 Tools.pdf这本书的第一章,而对于我们团队来讲,也有自己的独有的风格,当前,Leapfrog中除了变量和函数命名方式与上书中第一章有所出入 外,其他的都是相同的。Leapfrog中使用的是下划线方式,zend一般采用驼峰方式。PHP_CodeSniffer能够自动检测你的源代码中的风 格为题,并给出具体的行号,告诉你这个与标准有什么出入,以提醒你改正。目前,该工具的安装环境是PHP version 5.1.2及以上。

继续阅读“PHP工具之CodeSniffer”

PHP中$GLOBALS变量和register_globals

最近,在阅wordpress的代码的时候,看到在设置环境的初期,有一些安全性和初始化的工作,其中,有一个函数wp_unregister_GLOBALS()有点意思,函数的具体内容是:

继续阅读“PHP中$GLOBALS变量和register_globals”