仔细看一下官方插件HelloWorld的源码,你会发现其中就这么一句话:\Typecho\Plugin::factory('admin/menu.php')->navBar = __CLASS__.'::render';,然后你搜索admin目录,最终发现调用竟然是:\Typecho\Plugin::factory('admin/menu.php')->navBar(),于是你就可以知道,最快写插件,而且侵入式不强的插件方法就是类似这样的写法。

例如:

//前台入口只有一个:index.php,所以需要直接这样写
\Typecho\Plugin::factory('index.php')->showSiteName = __CLASS__.'::showSiteName';

在模板中调用:

\Typecho\Plugin::factory('index.php')->showSiteName()

是不是发现自己会写插件了?
而且,它的优点时,只在激活的时候注册一下,不会每次都加载(因为你也不需要每次都加载)。

但如果是用类似\Typecho\Plugin::factory('Widget_Archive')->beforeRender = [new self,'contentExtend'];这样的方法,只要调用到了Widget\Archive类,几乎都会执行一次,效率就低了。所以应该根据实际情况使用插件

标签: 插件

添加新评论