typecho插件编写教程1 - 从HelloWorld说起

本文涉及的产品
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: typecho插件编写教程1 - 从HelloWorld说起 老高 187 5月25日 发布 推荐 0 推荐 收藏 2 收藏,189 浏览 最近老高正在编写一个关于typecho的插件,由于typecho不像wordpres...
  •  0 推荐
  •  2 收藏,189 浏览

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

如果你对typecho的源码有兴趣,可以参考老高的系列文章

typecho源代码解析1 - 系统初始化
typecho源代码解析2 - 插件机制
typecho源代码解析3 - 路由分发
typecho源代码解析4 - 业务逻辑

从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

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

插件基本信息

插件结构

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

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

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

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方法

本节完。

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

目录
相关文章
|
5月前
|
JavaScript Java 测试技术
微信阅读小程序+springboot+vue.js附带文章和源代码说明文档ppt
微信阅读小程序+springboot+vue.js附带文章和源代码说明文档ppt
34 0
|
11月前
|
SQL 开发框架 .NET
CodeSmith 简单使用和常用模板
CodeSmith 简单使用和常用模板
51 0
CodeSmith 简单使用和常用模板
|
11月前
|
移动开发 开发框架 小程序
基于mpvue的小程序项目搭建的步骤一
基于mpvue的小程序项目搭建的步骤一
86 0
|
11月前
|
移动开发 开发框架 小程序
基于mpvue的小程序项目搭建的步骤
基于mpvue的小程序项目搭建的步骤
87 0
|
存储 开发框架 前端开发
用 Python 撸一个 Web 服务器-第0章:开篇词
用 Python 撸一个 Web 服务器-第0章:开篇词
|
编解码 移动开发 资源调度
ReactNative入门教程-项目结构解析及HelloWorld
ReactNative入门教程-项目结构解析及HelloWorld
228 0
ReactNative入门教程-项目结构解析及HelloWorld
|
Java Android开发 Kotlin
Kotlin练手,以登录为例,Anko简单使用
Kotlin练手,以登录为例,Anko简单使用
251 0
Kotlin练手,以登录为例,Anko简单使用
|
C# C++ 计算机视觉
Qt开发Activex笔记(一):环境搭建、基础开发流程和演示Demo
Qt开发Activex笔记(一):环境搭建、基础开发流程和演示Demo
|
容器
Phalcon如何创建多模块并能进行访问 《Phalcon入坑指南系列 四》(2)
Phalcon如何创建多模块并能进行访问 《Phalcon入坑指南系列 四》
168 0
Phalcon如何创建多模块并能进行访问 《Phalcon入坑指南系列 四》(2)
|
应用服务中间件 nginx
Phalcon如何创建多模块并能进行访问 《Phalcon入坑指南系列 四》(1)
Phalcon如何创建多模块并能进行访问 《Phalcon入坑指南系列 四》
195 0
Phalcon如何创建多模块并能进行访问 《Phalcon入坑指南系列 四》(1)
下一篇
无影云桌面