国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > PHP > 正文

typecho插件編寫教程(四):插件掛載

2024-05-04 23:35:42
字體:
供稿:網(wǎng)友
這篇文章主要介紹了typecho插件編寫教程(四):插件掛載,本文講解了如何找到插件點(diǎn)并掛載插件的方法,需要的朋友可以參考下
 

終于,在能夠保存配置信息后,我們可以開始編寫插件的掛載功能了。

首先我們需要知道系統(tǒng)為我們?cè)诟鱾€(gè)關(guān)鍵的環(huán)節(jié)都預(yù)留了插件點(diǎn)給我們,系統(tǒng)運(yùn)行到插件點(diǎn)時(shí),會(huì)檢測(cè)到是否有插件掛在這個(gè)點(diǎn)上,然后執(zhí)行插件的邏輯!

插件的工作就是找到合適的插件點(diǎn),掛上去,然后執(zhí)行自己的邏輯。

插件點(diǎn),插件鉤子,插件接口。。。在老高這兒是一個(gè)概念

官方的插件接口及功能列表

我們的插件需要執(zhí)行的邏輯在這里,Widget_Contents_Post_Edit類的finishPublish方法

文件路徑var/Widget/Contents/Post/Edit.php:736,可以看到,接口為我們傳遞了兩個(gè)參數(shù),一個(gè)是發(fā)布的內(nèi)容,另一個(gè)是類本身。有了類本身,我們可以在插件中隨意調(diào)用他的公共方法!

復(fù)制代碼代碼如下:

    // 文章完成發(fā)布插件接口
    $this->pluginHandle()->finishPublish($contents, $this);

還有一個(gè)頁面發(fā)布接口,下面的代碼會(huì)提到。

 

如何掛載

代碼如下,有省略。

復(fù)制代碼代碼如下:

<?php

 

class BaiduSubmitTest_Plugin implements Typecho_Plugin_Interface
{

    public static function activate(){
        //掛載發(fā)布文章和頁面的接口
        Typecho_Plugin::factory('Widget_Contents_Post_Edit')->finishPublish = array('BaiduSubmitTest_Plugin', 'send');
        Typecho_Plugin::factory('Widget_Contents_Page_Edit')->finishPublish = array('BaiduSubmitTest_Plugin', 'send');
        return '插件安裝成功,請(qǐng)進(jìn)入設(shè)置填寫準(zhǔn)入密鑰';
    }
...
...
    public static function render($contents, $class){
        //do something
    }
}


有代碼我們看到,在插件激活時(shí),系統(tǒng)將插件類BaiduSubmitTest_Plugin的render方法綁定到finishPublish的接口上!由于finishPublish會(huì)傳遞兩個(gè)參數(shù),所以render方法也要接受兩個(gè)參數(shù)。

 

此時(shí),只要插件正常啟用,當(dāng)我們發(fā)布完某一篇文章后,系統(tǒng)就會(huì)自動(dòng)調(diào)用BaiduSubmitTest_Plugin:render()方法了。

仔細(xì)觀察源代碼,你會(huì)發(fā)現(xiàn)此接口沒有返回值,如果有返回值怎么辦?

這個(gè)情況比較復(fù)雜,老高先留個(gè)坑。

為什么叫render方法?

老高從hello world中復(fù)制粘貼過來的,一直沒有改名。

接下來做什么

掛載點(diǎn)搞定了,下一步就是執(zhí)行我們的核心邏輯代碼了。

老高就留到下一篇吧!


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 格尔木市| 通州市| 涞源县| 新津县| 漯河市| 南昌县| 友谊县| 安顺市| 朝阳县| 大英县| 邵阳县| 临夏县| 芜湖市| 连城县| 湛江市| 汝城县| 将乐县| 阜宁县| 苏尼特左旗| 元氏县| 武川县| 淳化县| 禹城市| 湘西| 沙坪坝区| 彭州市| 天水市| 溆浦县| 敖汉旗| 丰镇市| 阜阳市| 罗定市| 合肥市| 文成县| 逊克县| 河东区| 潢川县| 科尔| 鸡泽县| 房产| 上虞市|