5.1 事件Event
Minor的 Event
類別提供一個簡單的觀察者實現,讓您在應用程式中訂閱與監聽事件。
5.1.1 訂閱事件
先建立一個事件類別:
<?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; } }
然後在設定檔中註冊中🀜這個事件:
<?phpreturn$events = ['App\Event\DemoEvent' => ['App\Listener\DemoListener' => 'handle', ],];
5.1.2 觸發事件
Minor提供了一個活動管理類別:MinorEventEventManger靜態方法fire:EventManager::fire($event)就可以觸發這個事件,例:
class FooController extends Controller {publicfunction bar($productName) {$event = new DemoEvent('DemoEvent'); EventManager::fire($event);... } }
5.2 監聽器
當觸發事件後事件管理器EventManager就會透過設定檔去觸發監聽器的製定方法。在5.1.1設定檔中我們設定了DemoEvent的監聽器為AppListenerDemoListener的handle方法,可以看一下這個類別的實作:
<?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框架之Minor5事件(附程式碼)的內容,希望對PHP教學有興趣的朋友有幫助。