程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> Minor【 PHP框架】5.事件,minorphp框架事件

Minor【 PHP框架】5.事件,minorphp框架事件

編輯:關於PHP編程

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
return $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方法,可以看一下這個類的實現:

<?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!<br/><br/>';
    }
}

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved