您的位置:首页 > 编程语言 > PHP开发

thinkphp插件开发(上)

2016-04-13 11:38 716 查看
用thinkphp做插件开发之前,可以先参考下onethink的插件模块;

本人用的版本是 tp3.2.3版本(注意 ot 用因为版本问题略有不同),可以通过如下截图了解它的行为扩展和钩子来实现 (多入口) 插件开发:

修改hook系统类(如下图1-1 和 1-2),图1-1 判断导入的插件标签类是否存在 ‘ / ’  (根据导入插件时判断). 

如图1-2中设置的(tags.php)是自动导入的,设置‘app_init ’意思指在应用初始化时就 导入 该标签类.

该类是 Common\Behavior\InitHookBehavior 存在 ‘ / ’ ,所以会走 单入口(限制只有一个run方法).

图1-3  是在 某个应用控制器 里 手动 导入插件,举个下面的例子:

add('demo', 'Editor') ,参数 ’demo‘ 为标签名,在Editor插件类 (图1-5) 里面作方法名,并且用于后面监听调用插件 (必须遵循先导入再监听原则),比如我在视图用自定义函数hook (图1-4);参数  ’Editor‘  为插件名 ,看  图1-1和1-3 的红色圈 就很容易理解它的命名来源, 因为参数 ‘Editor’  不像 aa\bb\cc 这样的形式,不存在 ' \ ',所以会走多入口模式,如此类推. 最后输出  图1-6。我们可以做一些优化,可以参考ot ,插件导入在应用初始化的时候就完成了
(InitHookBehavior类设置的意义),如图1-7,最后 同样 输出 图 1- 6。



                                                                                                     ( 图 1-1)



(图1-2)



(图 1-3)



(图1-4)



(图1-5)



(图1-6)



(图1-7)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  thinkphp