iWebShop插件开发手册.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
iWebShop插件开发手册

iWebShop插件开发手册 V4.4 2016-03-20 目录 概述3 拦截器(钩子)3 插件核心类 plugin.php3 插件内置钩子事件3 插件注册接口reg5 事件触发接口 trigger5 插件基类公开接口6 插件存放目录7 开发插件类文件7 插件视图引入11 概述 此文档仅适合对iWebShop整体架构和开发模式比较了解,并且有一定php技术经验的开发人员, 此文档专业性比较强,不适合非技术类人员阅读。 iWebShop从V4.4版本开始全面支持插件机制,插件是什么东西?总体来说,插件是一种可以热 插拔的(动态安装和卸载),可以实现一定功能性并且对目前现有运行系统不会产生任何影响的一种 松散耦合的设计模式,它内容丰富,而且易扩展,可以有更多的开发者参与进来,让产品自身的功能 更加丰富多彩,它也可以通过动态的安装组合,实现不同的产品架构。 拦截器(钩子) 说到插件就不得不提到钩子,插件之所以能够动态的加载到系统运行的各个环节中,主要是依赖 于钩子,什么是钩子呢?钩子就是iWebShop系统在运行中预留的一些事件函数,我们把插件注册(挂 接)到iWebShop的某个事件上面,当iWebShop运行到这个事件的时候就会自动触发并且调用插件, 只有明白了这个原理,我们才能继续下面的开发,关于更多钩子机制,可以百度学习一下。 iWebShop为开发者预留的大量的钩子,同时也支持开发者自己定义钩子事件,下面介绍一下系 统都预留了哪些钩子可以让开发者使用。这些钩子的调用和触发都在插件的核心管理类中,下面会重 点介绍! 插件核心类 plugin.php classes/plugin.php 是插件的核心类,所有插件的注册,调用,配置等等都必须要依靠它! 插件内置钩子事件 在核心插件类里面有系统内置的所有钩子,如图: 整个系统会在各自的地方调用预留的钩子,这些钩子就是让插件工作起来的源动力! iWebShop在运行过程中,会自动触发plugin核心类的注册事件,以达到调用各个插件的目的。 onCreateAp onBeforeCreateController onCreateController onBeforeCreateAction onFinishApp onFinishController onFinishAction onCreateAction onCreateView onFinishView 以上流程图就是iWebShop整个运行所触发的事件,我们的插件就要注册 (挂接)到这些事件上, 插件里面的代码可以在绑定的事件下运行,而且还可以给任意的控制器(controller)里面扩展动作 (action)。让插件里面的代码也可以和系统原有的控制器动作一样运行。 事件触发是广泛的,比如onCreateController 这是事件会监听所有控制器的创建,但是有的时候, 我们的插件仅仅是针对某个控制器的,比如前台访问统计,或者是后台的订单自动取消等,这些功能 仅需要监听(注册)site.php和order.php控制器,于是我们可以把事件名称做一下变形,比如: onCreateController@site onCreateController@order 这样就可以为某个控制器绑定事件了! 如果我们要在simple控制器下面扩展一个AAA 的动作方法,那么我们就要在 onBeforeCreateAction@simple@AAA绑定这个事件,这个事件的解释:在创建simple控制器下的AAA 动作之前调用,就是在程序要调用simple下的AAA 的时候,我们动态的给当前控制器 (simple)增加 方法。 plugin::reg(“onBeforeCreateAction@simple@AAA”,function(){ self::co

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档