minor【 php框架】5.事件,minorphp框架事件
5.1 事件event
Minor的 Event 类提供一个简单的观察者实现,允许您在应用程序里订阅与监听事件。
5.1.1 订阅事件
首先创建一个事件类:
php namespace App\Event; use Minor\Event\Event; class DemoEvent extends Event { private $name; public function __construct($name) { $this->name = $name; } public function setName($name) { $this->name = $name; } public function getName() { return $this->name; } }
然后在配置文件中注册这个事件:
立即学习“PHP免费学习笔记(深入)”;
php return $events = [ 'App\Event\DemoEvent' => [ 'App\Listener\DemoListener' => 'handle', ], ];
5.1.2 触发事件
乐彼多用户商城系统,采用ASP.NET分层技术和AJAX技术,运营于高速稳定的微软.NET+MSSQL 2005平台;完全具备搭建超大型网络购物多用户网上商城的整体技术框架和应用层次LBMall 秉承乐彼软件优秀品质,后台人性化设计,管理窗口识别客户端分辨率自动调整,独立配置的菜单操作锁,使管理操作简单便捷。待办事项1、新订单、支付、付款、短信提醒2、每5分钟自动读取3、新事项声音提醒 店铺管理1
Minor提供了一个事件管理类:Minor\Event\EventManger,通过调用该类的静态方法fire:EventManager::fire($event)就可以触发这个事件,例:
class FooController extends Controller { public function bar($productName) { $event = new DemoEvent('DemoEvent'); EventManager::fire($event); ... } }
5.2 监听器
当触发事件后事件管理器EventManager就会通过配置文件去触发监听器的制定方法。在5.1.1配置文件中我们配置了DemoEvent的监听器为App\Listener\DemoListener的handle方法,可以看一下这个类的实现:
php namespace App\Listener; use App\Event\DemoEvent; use Minor\Event\Listener; class DemoListener extends Listener { public function handle(DemoEvent $event) { echo '[DemoListener] handle the event:[' . $event->getName() .'] success!
'; } }










