当前位置: 首页 > 后端技术 > PHP

PHP事件机制

时间:2023-03-29 16:23:03 PHP

首先用3W1H(whowhatwhyhow)分析法来讲解事件机制。更重要的是,这有什么用?_正常_程序执行,或者说人的思维趋势,是按照时间线性串行来保持连续性。但是,现实中会出现各种中断,程序并不总是处于就绪状态,这时,就需要有一种机制来处理可能发生的各种中断,或者在程序的不同状态之间进行切换。事件机制发展到现在,有时也可以看作是一种保留方法。根据你的经验,你可以把它埋在你需要的地方,以便以后修补它。swoft的事件机制基于PSR-14实现,内聚性强,简洁。由三部分组成:EventManager:事件管理器Event:EventEventHandler/Listener:EventHandler/Listener执行过程:生成EventManager,将Event和EventHandler注册到EventManager中触发Event,EventManager会调用对应的EventHandler来使用更简单:namespaceSwoft\事件;类ListenerQueue实现\IteratorAggregate,\Countable{protected$store;/***优先队列*@var\SplPriorityQueue*/protected$queue;/***counter*设置最大值为PHP_INT_MAX==300*@varint*/private$counter=PHP_INT_MAX;公共函数__construct(){$this->store=new\SplObjectStorage();//这里先添加事件对象$this->queue=new\SplPriorityQueue();//然后加入优先队列,然后调度}...}稍微玩过ACM的人都会对优先队列不陌生,基本上OJ都有相关题库。但是,如果PHPer懒得关心底层实现,他可以直接使用SPL库。