《PHP實戰:typecho插件編寫教程(四):插件掛載》要點:
本文介紹了PHP實戰:typecho插件編寫教程(四):插件掛載,希望對您有用。如果有疑問,可以聯系我們。
PHP教程終于,在能夠保存配置信息后,我們可以開始編寫插件的掛載功能了.
PHP教程首先我們需要知道系統為我們在各個關鍵的環節都預留了插件點給我們,系統運行到插件點時,會檢測到是否有插件掛在這個點上,然后執行插件的邏輯!
PHP教程插件的工作就是找到合適的插件點,掛上去,然后執行自己的邏輯.
PHP教程插件點,插件鉤子,插件接口...在老高這兒是一個概念
PHP教程官方的插件接口及功能列表
PHP教程我們的插件需要執行的邏輯在這里,Widget_Contents_Post_Edit類的finishPublish方法
PHP教程文件路徑var/Widget/Contents/Post/Edit.php:736,可以看到,接口為我們傳遞了兩個參數,一個是發布的內容,另一個是類本身.有了類本身,我們可以在插件中隨意調用他的公共方法!
PHP教程如何掛載
PHP教程代碼如下,有省略.
PHP教程class BaiduSubmitTest_Plugin implements Typecho_Plugin_Interface
{
PHP教程??? public static function activate(){
??????? //掛載發布文章和頁面的接口
??????? 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 '插件安裝成功,請進入設置填寫準入密鑰';
??? }
...
...
??? public static function render($contents, $class){
??????? //do something
??? }
}
PHP教程此時,只要插件正常啟用,當我們發布完某一篇文章后,系統就會自動調用BaiduSubmitTest_Plugin:render()方法了.
PHP教程仔細觀察源代碼,你會發現此接口沒有返回值,如果有返回值怎么辦?
PHP教程這個情況比較復雜,老高先留個坑.
PHP教程為什么叫render方法?
PHP教程老高從hello world中復制粘貼過來的,一直沒有改名.
PHP教程接下來做什么
PHP教程掛載點搞定了,下一步就是執行我們的核心邏輯代碼了.
PHP教程老高就留到下一篇吧!
歡迎交流《PHP實戰:typecho插件編寫教程(四):插件掛載》相關教程,維易PHP學堂將分享更多教程。