php框架Minor5事件(附代码)

PHPz
Freigeben: 2018-10-12 09:31:35
Original
1247 Leute haben es durchsucht

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;
    }
}
Nach dem Login kopieren

  然后在配置文件中注册这个事件:

<?phpreturn$events = [&#39;App\Event\DemoEvent&#39;    =>    ['App\Listener\DemoListener' => 'handle',    ],];
Nach dem Login kopieren

5.1.2 触发事件

  Minor提供了一个事件管理类:Minor\Event\EventManger,通过调用该类的静态方法fire:EventManager::fire($event)就可以触发这个事件,例:

class FooController extends Controller
{publicfunction bar($productName)
    {$event = new DemoEvent('DemoEvent');
        EventManager::fire($event);...    }
}
Nach dem Login kopieren

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
{publicfunction handle(DemoEvent $event)
    {echo &#39;[DemoListener] handle the event:[&#39; . $event->getName() .'] success!

';
    }
}
Nach dem Login kopieren

以上就介绍了php框架之Minor5事件(附代码)的内容,希望对PHP教程有兴趣的朋友有所帮助。


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!