加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

typecho插件编写教程(四):插件挂载

发布时间:2020-12-13 02:38:57 所属栏目:PHP教程 来源:网络整理
导读:《PHP实战:typecho插件编写教程(四):插件挂载》要点: 本文介绍了PHP实战:typecho插件编写教程(四):插件挂载,希望对您有用。如果有疑问,可以联系我们。 PHP教程 终于,在能够保存配置信息后,我们可以开始编写插件的挂载功能了. PHP教程 首先我们需

《PHP实战:typecho插件编写教程(四):插件挂载》要点:
本文介绍了PHP实战:typecho插件编写教程(四):插件挂载,希望对您有用。如果有疑问,可以联系我们。

PHP教程终于,在能够保存配置信息后,我们可以开始编写插件的挂载功能了.

PHP教程首先我们需要知道系统为我们在各个关键的环节都预留了插件点给我们,系统运行到插件点时,会检测到是否有插件挂在这个点上,然后执行插件的逻辑!

PHP教程插件的工作就是找到合适的插件点,挂上去,然后执行自己的逻辑.

PHP教程插件点,插件钩子,插件接口...在老高这儿是一个概念

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

PHP教程我们的插件需要执行的逻辑在这里,Widget_Contents_Post_Edit类的finishPublish方法

PHP教程文件路径var/Widget/Contents/Post/Edit.php:736,可以看到,接口为我们传递了两个参数,一个是发布的内容,另一个是类本身.有了类本身,我们可以在插件中随意调用他的公共方法!

代码如下:

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

还有一个页面发布接口,下面的代码会提到.

PHP教程如何挂载

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
??? }
}


有代码我们看到,在插件激活时,系统将插件类BaiduSubmitTest_Plugin的render方法绑定到finishPublish的接口上!由于finishPublish会传递两个参数,所以render方法也要接受两个参数.

PHP教程此时,只要插件正常启用,当我们发布完某一篇文章后,系统就会自动调用BaiduSubmitTest_Plugin:render()方法了.

PHP教程仔细观察源代码,你会发现此接口没有返回值,如果有返回值怎么办?

PHP教程这个情况比较复杂,老高先留个坑.

PHP教程为什么叫render方法?

PHP教程老高从hello world中复制粘贴过来的,一直没有改名.

PHP教程接下来做什么

PHP教程挂载点搞定了,下一步就是执行我们的核心逻辑代码了.

PHP教程老高就留到下一篇吧!

欢迎交流《PHP实战:typecho插件编写教程(四):插件挂载》相关教程,编程之家学堂将分享更多教程。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读