从bin/swoft开始,阅读Swoft框架源码(七)--EventProcessor事件处理器

码农天地 -
从bin/swoft开始,阅读Swoft框架源码(七)--EventProcessor事件处理器

经过Bean处理器后,我们业务中要用到的组件大多都被放在了容器内.我们要用到的时候可以从容器内获取这个bean对象,这让我们的工作轻松了不少.

先看事件处理器的入口方法:

public function handle(): bool
{
     if (!$this->application->beforeEvent()) {
         CLog::warning('Stop event processor by beforeEvent return false');
         return false; 
     }
     // 从容器内获取已经加载的事件管理器
     /** @var EventManager $eventManager */
     $eventManager = bean('eventManager');
     // 将ListenerRegister保存的事件监听和事件订阅实例保存到事件管理器上
     // count1是监听实例的数量,count2是订阅实例的数量
     [$count1, $count2] = ListenerRegister::register($eventManager);
     // 打印执行结果到控制台
     CLog::info('Event manager initialized(%d listener, %d subscriber)', $count1, $count2);
     // Trigger a app init event
     // 触发APP初始化完成事件
     Swoft::trigger(SwoftEvent::APP_INIT_COMPLETE);
     // 结束事件处理器工作
     return $this->application->afterEvent();
}

总结:

由于事件管理器已被加载到bean容器中,所以当前处理器工作很少,只是将收集到的监听者和订阅者对象移交给事件管理器统一管理.
另外,在事件处理器调用前要想添加事件监听,要通过Swoft\Event\ListenerRegister的addListener或addSubscriber方法来添加.
事件管理器,后面可能会出单独章节进行分析.
特别申明:本文内容来源网络,版权归原作者所有,如有侵权请立即与我们联系(cy198701067573@163.com),我们将及时处理。

php介绍

PHP即“超文本预处理器”,是一种通用开源脚本语言。PHP是在服务器端执行的脚本语言,与C语言类似,是常用的网站编程语言。PHP独特的语法混合了C、Java、Perl以及 PHP 自创的语法。利于学习,使用广泛,主要适用于Web开发领域。

Tags 标签

phpswooleswoft

扩展阅读

加个好友,技术交流

1628738909466805.jpg