typecho插件編寫教程(一):Hello World
最近老高正在編寫一個(gè)關(guān)于typecho的插件,由于typecho不像wordpress,有那么多的文檔參考,寫一個(gè)插件還是遇到了很多的坑,不過隨著研究的不斷深入,老高也慢慢上手了,于是總結(jié)出此篇編寫教程分享給大家!
I. 從HelloWorld說起
基本信息
想必想要開發(fā)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
*/
...
...
這幾行代碼是一個(gè)插件的基本信息,我們由代碼可以得出以下與插件相關(guān)的基本信息
插件說明 ---> Hello World
插件包名 ---> HelloWorld
插件作者 ---> qining
插件版本 ---> 1.0.0
插件鏈接 ---> http://typecho.org
同時(shí)這些信息都會顯示在插件頁中,如下圖

插件結(jié)構(gòu)
我們繼續(xù)向后面的代碼看,一個(gè)最簡單的插件結(jié)構(gòu)如下(為了縮短篇幅,老高移除了具體方法的實(shí)現(xiàn))
每個(gè)方法基本都有注釋,老高不再贅述。
看起來很簡單吧?其實(shí)里面還是有不少坑的。
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){}
/**
* 個(gè)人用戶的配置面板
*
* @access public
* @param Typecho_Widget_Helper_Form $form
* @return void
*/
public static function personalConfig(Typecho_Widget_Helper_Form $form){}
/**
* 插件實(shí)現(xiàn)方法
*
* @access public
* @return void
*/
public static function render(){}
}
插件流程
插件的基本流程是這樣的。
1.當(dāng)我們的插件寫好后會出現(xiàn)在后臺
2.點(diǎn)擊啟用按鈕后,會執(zhí)行對應(yīng)插件類的activate方法
3.插件與目標(biāo)插件點(diǎn)關(guān)聯(lián),等待觸發(fā)
4.當(dāng)點(diǎn)擊停用的時(shí)候調(diào)用deactivate方法
本節(jié)完。
下一節(jié)老高會更詳細(xì)的說明插件類的方法。
相關(guān)文章
ThinkPHP采用GET方式獲取中文參數(shù)查詢無結(jié)果的解決方法
這篇文章主要介紹了ThinkPHP采用GET方式獲取中文參數(shù)查詢無結(jié)果的解決方法,需要的朋友可以參考下2014-06-06
Laravel 錯(cuò)誤提示本地化的實(shí)現(xiàn)
今天小編就為大家分享一篇Laravel 錯(cuò)誤提示本地化的實(shí)現(xiàn),具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-10-10
php中hashtable實(shí)現(xiàn)示例分享
對php內(nèi)核有一定了解的人應(yīng)該都知道php的精髓就是HashTable,這篇文章主要介紹了php中hashtable實(shí)現(xiàn)示例,需要的朋友可以參考下2014-02-02
淺談使用 PHP 進(jìn)行手機(jī) APP 開發(fā)(API 接口開發(fā))
做過 API 的人應(yīng)該了解,其實(shí)開發(fā) API 比開發(fā) WEB 更簡潔,但可能邏輯更復(fù)雜,因?yàn)?API 其實(shí)就是數(shù)據(jù)輸出,不用呈現(xiàn)頁面,所以也就不存在 MVC(API 只有 M 和 C),那么我們來探討下,如何使用php進(jìn)行手機(jī)API接口開發(fā)2014-08-08
Laravel5.7 數(shù)據(jù)庫操作遷移的實(shí)現(xiàn)方法
這篇文章主要介紹了 Laravel5.7 數(shù)據(jù)庫操作遷移的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04
ThinkPHP入庫出現(xiàn)兩次反斜線轉(zhuǎn)義及數(shù)據(jù)庫類轉(zhuǎn)義的解決方法
這篇文章主要介紹了ThinkPHP入庫出現(xiàn)兩次反斜線轉(zhuǎn)義及數(shù)據(jù)庫類轉(zhuǎn)義的解決方法,主要通過針對magic_quotes_gpc開啟的情況下進(jìn)行檢查與判斷轉(zhuǎn)義來實(shí)現(xiàn),需要的朋友可以參考下2014-11-11

