5.1 事件event
Minor的 Event 类提供一个简单的观察者实现,允许您在应用程序里订阅与监听事件。
5.1.1 订阅事件
首先创建一个事件类:
立即学习“PHP免费学习笔记(深入)”;
<?php
namespace App\Event;use Minor\Event\Event;class DemoEvent extends Event
{private$name;publicfunction __construct($name)
{$this->name = $name;
}publicfunction setName($name)
{$this->name = $name;
}publicfunction getName()
{return$this->name;
}
}
立即学习“PHP免费学习笔记(深入)”;
然后在配置文件中注册这个事件:
立即学习“PHP免费学习笔记(深入)”;
<?phpreturn$events = ['App\Event\DemoEvent' => ['App\Listener\DemoListener' => 'handle', ],];
立即学习“PHP免费学习笔记(深入)”;
5.1.2 触发事件
ECTouch是上海商创网络科技有限公司推出的一套基于 PHP 和 MySQL 数据库构建的开源且易于使用的移动商城网店系统!应用于各种服务器平台的高效、快速和易于管理的网店解决方案,采用稳定的MVC框架开发,完美对接ecshop系统与模板堂众多模板,为中小企业提供最佳的移动电商解决方案。ECTouch程序源代码完全无加密。安装时只需将已集成的文件夹放进指定位置,通过浏览器访问一键安装,无需对已有
Minor提供了一个事件管理类:Minor\Event\EventManger,通过调用该类的静态方法fire:EventManager::fire($event)就可以触发这个事件,例:
立即学习“PHP免费学习笔记(深入)”;
class FooController extends Controller
{publicfunction bar($productName)
{$event = new DemoEvent('DemoEvent');
EventManager::fire($event);... }
}
立即学习“PHP免费学习笔记(深入)”;
5.2 监听器
当触发事件后事件管理器EventManager就会通过配置文件去触发监听器的制定方法。在5.1.1配置文件中我们配置了DemoEvent的监听器为App\Listener\DemoListener的handle方法,可以看一下这个类的实现:
立即学习“PHP免费学习笔记(深入)”;
<?php
namespace App\Listener;use App\Event\DemoEvent;use Minor\Event\Listener;class DemoListener extends Listener
{publicfunction handle(DemoEvent $event)
{echo '[DemoListener] handle the event:[' . $event->getName() .'] success!
';
}
}
立即学习“PHP免费学习笔记(深入)”;
以上就介绍了php框架之Minor5事件(附代码)的内容,希望对PHP教程有兴趣的朋友有所帮助。










