MVC框架入门准备(三)事件类 - 事件的监听和触发
2017-05-16 14:56
239 查看
在mvc框架中可以看到事件类,实现事件的监听和触发。
举例:
就是说,在框架中,我们可以注册事件,并在某点触发事件,不需要修改源代码
注册事件:
没有注册,不能触发。
注册才可以触发
举例:
<?php /** * 事件类 */ class Event { // 事件绑定记录 private static $events; /** * 初始化 */ public static function init() { self::$events = array (); // 获取插件列表return true; } /** * 注册事件 * * @param string $event * @param mixed $callback * @param bool $first 是否优先执行,以靠后设置的为准 */ public static function register($event, $callback, $first=false) { if (! isset(self::$events[$event])) { self::$events[$event] = array (); } if($first) { array_unshift(self::$events[$event],$callback); } else { self::$events[$event][] = $callback; } } /** * 触发事件(监听事件) * @param name $event * @param boolean $once * @return mixed */ public static function trigger($event, &$params=array()) { if (isset(self::$events[$event])) { foreach (self::$events[$event] as $item) { if(true === call_user_func($item,$params)) { // 事件返回true时不继续执行其余事件 return true; } } return false; } return true; } }
就是说,在框架中,我们可以注册事件,并在某点触发事件,不需要修改源代码
function addArtice() { ....... Event::trigger('ON_Artice_ADD',array('userInfo'=>$userInfo,'result'=>&$result)); //这里监听触发当文章被添加的时候的事件:ON_Artice_ADD }
注册事件:
Event::register('ON_Artice_ADD',function($data){ // 这里可以做一些事情 .......... });
没有注册,不能触发。
注册才可以触发
相关文章推荐
- 【Tangram】 通过监听进行事件触发
- Android应用程序入门 推箱子游戏开发(二) 键盘事件监听 角色在屏幕上移动
- php实现事件监听与触发的方法
- php事件与事件监听、事件触发
- 事件工具:监听/触发
- 如何在Swing中,进行某个操作,而不触发事件监听
- Android基础入门教程——3.1 基于监听的事件处理机制
- highcharts图表组件入门教程:如何监听柱状图柱子点击事件动态更新当前数据点数值和所对应X轴刻度
- 事件监听以及事件触发的简单实现流程
- Android入门(2)——点击事件的三种方式监听方式
- Spread for Windows Forms快速入门(8)---单元格中用户动作触发的事件
- js监听和触发浏览器窗口关闭事件
- 实时监听js改变value,触发事件,跨浏览器支持
- javafx 可监听list的setAll方法 不触发监听事件
- 监听input text中内容发生变化时触发事件
- blur,valid事件一次监听多次触发的性质
- c# 与java 相同实现 自定义事件的触发及监听
- 事件监听以及事件触发的简单实现流程
- nodejs事件的监听与触发的理解分析
- nodejs事件的监听与事件的触发