Minor【 PHP架構】5.事件,minorphp架構事件
5.1 事件Event
Minor的 Event 類提供一個簡單的觀察者實現,允許您在應用程式裡訂閱與監聽事件。
5.1.1 訂閱事件
首先建立一個事件類別:
phpnamespace 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; }}
然後在設定檔中註冊這個事件:
phpreturn $events = [ 'App\Event\DemoEvent' => [ 'App\Listener\DemoListener' => 'handle', ],];
5.1.2 觸發事件
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方法,可以看一下這個類的實現:
phpnamespace 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!
'; }}
http://www.bkjia.com/PHPjc/1135179.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/1135179.htmlTechArticleMinor【 PHP架構】5.事件,minorphp架構事件 5.1 事件Event Minor的 Event 類提供一個簡單的觀察者實現,允許您在應用程式裡訂閱與監聽事件。 5....