what & how to do

  • registerEvents

    在\Piwik\Plugin的自派生类中的registerEvents函数可以向Piwik注册事件,函数返回一个Key-Value结构的数组,数组的Key是事件的名称(取名应该是随意的,暂时还没发现有什么套路),数组的Value是处理事件的函数,有两种形式:

    • 字符串形式的
      public function registerEvents()
      {
          return array(
                  "Platform.initialized"=>"processEventInPluginClass"
          );
      }
      public function processEventInPluginClass()
      {
          echo "<h4>Hello , the event process is in<br/><br/> class: ".__CLASS__."<br/> function : ".__FUNCTION__."</h4><br/>";
      }
      

    类似于上面这种,处理函数作为放在Piwik\Plugin派生类的方法,但是如果一个插件响应事件太多了,这个类就会显得有点肥硕,还好,我们可以吧处理的函数放到其他的类中实现。

    • 数组形式
      public function registerEvents()
      {
          $testEvent = new TestEvent();
          return array(
                  "Platform.initialized"=>array(
                          "function"=>array(
                                  $testEvent,
                                  'processEventInOtherClass'
                          ),
                          "after"=>1
                  )
          );
      }
      
      如上代码,数组的Value是一个数组,function的内容可以是一个字符串,类似于上面函数名,也可以参照PHP的call_user_func的参数,参照PHP call_user_func 可以知道传参的方式,上面只是一个简单的例子,相当于执行 $testEvent->processEventInOtherClass(..arguments);除了function之外,还有两个可选项,after 和 before 作为标识响应的顺序。

上面两个例子可以再CoreExtend和SiteSeparator两个插件的注释中可以看到

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 曾经有一份美好的爱情放在我的面前我没有珍惜。等到失去后才后悔莫及。如果可以再对小李说。毛欣想说。这辈子无缘再牵手。...
    毛欣与小李阅读 3,270评论 0 13
  • 我想写写我的父亲,虽然我不知道怎么写。 我很早很早以前就想写,但是总是不能无法难以不肯下笔,下不去笔,我对父亲的感...
    普雅也是花阅读 2,916评论 5 20
  • 嘿,你好吗? 文,蔚蓝 嘿,你好吗? 你记得自己有多久没有拥抱过自...
    蔚蓝的成长周记阅读 524评论 3 4
  • 很多时候不是女人强势,是这个社会对女人过于物尽其用。 1 事实上,我不喜欢写热点,不喜欢写风口浪尖上的争议性话题。...
    沐微眠阅读 863评论 1 0
  • 我从未拥有过方向 每一次转身 不过是换一场失望 像一只船只能拥抱海洋 回忆太短 一生太长
    闻川阅读 367评论 0 2

友情链接更多精彩内容