typecho插件编写教程(一):Hello World


Posted in PHP onMay 28, 2015

最近老高正在编写一个关于typecho的插件,由于typecho不像wordpress,有那么多的文档参考,写一个插件还是遇到了很多的坑,不过随着研究的不断深入,老高也慢慢上手了,于是总结出此篇编写教程分享给大家!

I. 从HelloWorld说起

基本信息

想必想要开发typecho的你一定阅读过官方示例插件HelloWorld的源码吧?

我们先看看usr/plugins/HelloWorld/Plugin.php文件前几行

if (!defined('__TYPECHO_ROOT_DIR__')) exit;

/**

 * Hello World

 * 

 * @package HelloWorld 

 * @author qining

 * @version 1.0.0

 * @link http://typecho.org

 */

 ...

 ...

这几行代码是一个插件的基本信息,我们由代码可以得出以下与插件相关的基本信息

插件说明 ---> Hello World
插件包名 ---> HelloWorld
插件作者 ---> qining
插件版本 ---> 1.0.0
插件链接 ---> http://typecho.org

同时这些信息都会显示在插件页中,如下图

typecho插件编写教程(一):Hello World

插件结构

我们继续向后面的代码看,一个最简单的插件结构如下(为了缩短篇幅,老高移除了具体方法的实现)

每个方法基本都有注释,老高不再赘述。

看起来很简单吧?其实里面还是有不少坑的。

class HelloWorld_Plugin implements Typecho_Plugin_Interface

{

    /**

     * 激活插件方法,如果激活失败,直接抛出异常

     * 

     * @access public

     * @return void

     * @throws Typecho_Plugin_Exception

     */

    public static function activate(){}
    /**

     * 禁用插件方法,如果禁用失败,直接抛出异常

     * 

     * @static

     * @access public

     * @return void

     * @throws Typecho_Plugin_Exception

     */

    public static function deactivate(){}
    /**

     * 获取插件配置面板

     * 

     * @access public

     * @param Typecho_Widget_Helper_Form $form 配置面板

     * @return void

     */

    public static function config(Typecho_Widget_Helper_Form $form){}
    /**

     * 个人用户的配置面板

     * 

     * @access public

     * @param Typecho_Widget_Helper_Form $form

     * @return void

     */

    public static function personalConfig(Typecho_Widget_Helper_Form $form){}
    /**

     * 插件实现方法

     * 

     * @access public

     * @return void

     */

    public static function render(){}

}

插件流程

插件的基本流程是这样的。

1.当我们的插件写好后会出现在后台
2.点击启用按钮后,会执行对应插件类的activate方法
3.插件与目标插件点关联,等待触发
4.当点击停用的时候调用deactivate方法

本节完。

下一节老高会更详细的说明插件类的方法。

PHP 相关文章推荐
用PHP读注册表
Oct 09 PHP
PHP用mysql数据库存储session的代码
Mar 05 PHP
如何使用FireFox插件FirePHP调试PHP
Jul 23 PHP
ThinkPHP3.1新特性之动态设置自动完成及自动验证示例代码
Jun 23 PHP
PHP中绘制图像的一些函数总结
Nov 19 PHP
Yii入门教程之Yii安装及hello world
Nov 25 PHP
php约瑟夫问题解决关于处死犯人的算法
Mar 23 PHP
PHP编写RESTful接口的方法
Feb 21 PHP
详解PHP中array_rand函数的使用方法
Sep 11 PHP
Symfony2获取web目录绝对路径、相对路径、网址的方法
Nov 14 PHP
深入解析PHP中SESSION反序列化机制
Mar 01 PHP
使用PHP+MySql+Ajax+jQuery实现省市区三级联动功能示例
Sep 15 PHP
php实现的mongodb操作类
May 28 #PHP
PHP编译安装时常见错误解决办法
May 28 #PHP
PHP安装memcached扩展笔记
May 28 #PHP
PHP实现的增强性mhash函数
May 27 #PHP
PHP验证信用卡卡号是否正确函数
May 27 #PHP
PHP的伪随机数与真随机数详解
May 27 #PHP
php实现window平台的checkdnsrr函数
May 27 #PHP
You might like
php自动获取目录下的模板的代码
2010/08/08 PHP
php实现单链表的实例代码
2013/03/22 PHP
php线性表的入栈与出栈实例分析
2015/06/12 PHP
Yii框架表单模型和验证用法
2016/05/20 PHP
php正则修正符用法实例详解
2016/12/29 PHP
ThinkPHP5框架缓存查询操作分析
2018/05/30 PHP
实例分析10个PHP常见安全问题
2019/07/09 PHP
jQuery 使用手册(五)
2009/09/23 Javascript
小议javascript 设计模式 推荐
2009/10/28 Javascript
利用JS自动打开页面上链接的实现代码
2011/09/25 Javascript
jQuery 中国省市两级联动选择附图
2014/05/14 Javascript
js点击button按钮跳转到另一个新页面
2014/10/10 Javascript
jQuery中on()方法用法实例
2015/01/19 Javascript
Vue中正确使用jQuery的方法
2017/10/30 jQuery
深入理解ES6之数据解构的用法
2018/01/13 Javascript
微信小程序实现日历功能
2018/11/27 Javascript
JavaScript中concat复制数组方法浅析
2019/01/20 Javascript
ionic+html5+API实现双击返回键退出应用
2019/09/17 Javascript
js 获取扫码枪输入数据的方法
2020/06/10 Javascript
微信小程序清空输入框信息与实现屏幕往上滚动的示例代码
2020/06/23 Javascript
pycharm下打开、执行并调试scrapy爬虫程序的方法
2017/11/29 Python
解决python selenium3启动不了firefox的问题
2018/10/13 Python
Flask框架学习笔记之路由和反向路由详解【图文与实例】
2019/08/12 Python
python3 webp转gif格式的实现示例
2019/12/10 Python
python连接mongodb集群方法详解
2020/02/13 Python
python内打印变量之%和f的实例
2020/02/19 Python
Python基础类继承重写实现原理解析
2020/04/03 Python
CSS3中线性颜色渐变的一些实现方法
2015/07/14 HTML / CSS
CSS3实现10种Loading效果
2016/07/11 HTML / CSS
95%的面试官都会问到的50道Java线程题,附答案
2012/08/03 面试题
电气工程师岗位职责
2014/01/01 职场文书
好人好事演讲稿
2014/09/01 职场文书
2014年党建工作汇报材料
2014/10/27 职场文书
2014三年级班主任工作总结
2014/12/05 职场文书
欢迎词范文
2015/01/27 职场文书
2015年财政局工作总结
2015/05/21 职场文书