Minor【 PHP框架】5.事件,minorphp框架事件
Jul 06, 2016 pm 02:25 PMMinor【 PHP框架】5.事件,minorphp框架事件
5.1 事件Event
Minor的 Event
類提供一個簡單的觀察者實現(xiàn),允許您在應用程序里訂閱與監(jiān)聽事件。
5.1.1 訂閱事件
首先創(chuàng)建一個事件類:
<?<span>php namespace App\Event; </span><span>use</span><span> Minor\Event\Event; </span><span>class</span> DemoEvent <span>extends</span><span> Event { </span><span>private</span> <span>$name</span><span>; </span><span>public</span> <span>function</span> __construct(<span>$name</span><span>) { </span><span>$this</span>->name = <span>$name</span><span>; } </span><span>public</span> <span>function</span> setName(<span>$name</span><span>) { </span><span>$this</span>->name = <span>$name</span><span>; } </span><span>public</span> <span>function</span><span> getName() { </span><span>return</span> <span>$this</span>-><span>name; } }</span>
然后在配置文件中注冊這個事件:
<?<span>php </span><span>return</span> <span>$events</span> =<span> [ </span>'App\Event\DemoEvent' =><span> [ </span>'App\Listener\DemoListener' => 'handle',<span> ]</span>,<span> ];</span>
5.1.2 觸發(fā)事件
Minor提供了一個事件管理類:Minor\Event\EventManger,通過調(diào)用該類的靜態(tài)方法fire:EventManager::fire($event)就可以觸發(fā)這個事件,例:
<span>class</span> FooController <span>extends</span><span> Controller { </span><span>public</span> <span>function</span> bar(<span>$productName</span><span>) { </span><span>$event</span> = <span>new</span> DemoEvent('DemoEvent'<span>); EventManager</span>::fire(<span>$event</span><span>); </span>...<span> } }</span>
5.2 監(jiān)聽器
當觸發(fā)事件后事件管理器EventManager就會通過配置文件去觸發(fā)監(jiān)聽器的制定方法。在5.1.1配置文件中我們配置了DemoEvent的監(jiān)聽器為App\Listener\DemoListener的handle方法,可以看一下這個類的實現(xiàn):
<?<span>php namespace App\Listener; </span><span>use</span><span> App\Event\DemoEvent; </span><span>use</span><span> Minor\Event\Listener; </span><span>class</span> DemoListener <span>extends</span><span> Listener { </span><span>public</span> <span>function</span> handle(DemoEvent <span>$event</span><span>) { </span><span>echo</span> '[DemoListener] handle the event:[' . <span>$event</span>->getName() .'] success!<br/><br/>'<span>; } }</span>
?

? AI ??

Undress AI Tool
??? ???? ??

Undresser.AI Undress
???? ?? ??? ??? ?? AI ?? ?

AI Clothes Remover
???? ?? ???? ??? AI ?????.

Clothoff.io
AI ? ???

Video Face Swap
??? ??? AI ?? ?? ??? ???? ?? ???? ??? ?? ????!

?? ??

??? ??

???++7.3.1
???? ?? ?? ?? ???

SublimeText3 ??? ??
??? ??, ???? ?? ????.

???? 13.0.1 ???
??? PHP ?? ?? ??

???? CS6
??? ? ?? ??

SublimeText3 Mac ??
? ??? ?? ?? ?????(SublimeText3)

??? ??











php5? php8? ???? ??, ?? ??, ?? ???, ?? ??, ??? ?????, ?? ????? ?? ? ?? ???? ????. ??? ??: 1. ?? ?? PHP5? ???? PHP8? JIT ????? ???? ?? ??? ?? ??? ????? ????? ?? ??? ??????. PHP8?? ? ?? ??? ?? ??? ??? ???????. PHP8? ??? ????? ????? ???? ???? ?? ?? ???? ??? ??? ? ????.

php5?? ?? 80? ???? ??: 1. Apache ?? ?? ???? ?? ??? ?????. 2. PHP? ? ???? ????? PHP ?? ??? ?????. 3. Apache ??? ?? ???? PHP ?? ????? ?????. ? ???? ??? ?????.

php5? ?? 9000? ???? ?? ??? ?? ??: 1. PHP-FPM ?? ??? ?????. 2. PHP-FPM ???? ?? ?????. 3. ???? ??? ?? ??? ?????. 4. ?? ????? ?? 9000? ????? ?????.

php7? php5? ?? ???? ??? ????. 1. PHP7? ??? ?? ??? ????? PHP5 ?? ??? ??????. 2. PHP7? ??? ?? ??? ????? PHP5? ???? ????. 3. PHP7? NULL ?? ???? ?????. PHP5? ??? ???? null? ??? ?????. ???? ???? ???. 4. PHP7? ??? ?? ??? "<=>"? ????? PHP5? ??? ????. 5. PHP5? ??? ??? ?? ???? ?????. ?? ????.

PHP5? ??? ? ?? ???? ?? 9000? ??? ? ?? ??? ??? ? ????. ?? ? ??? ????? ?? ?? ? ?? ?? ??? ???? ???.

????? ????? ?? ??? 80?? PHP5 ??? ???? ?? ??? ??? ? ????. ? ??? ?? ??? ?? ? ???, ?? ??? ????? ?? ?????.

php7? 5 ??? ????? ?? ??, ??? ?? ??, ?? ? ?? ??, ?? ?? ??, ?? ???, ?? ??, ??? ???, ??? ?? ?? ? ?? ?? ?? ??? ?????. ?? ??: 1. ?? ?? PHP7? Zend Engine 3.0??? ??? Zend ??? ???? ??? ??? ??, ???? ?? ?? ? ?? ??? ?? PHP5? ??? ? 2? ???????. , ??? ??? ?? ?

PHP? ?? ????? ??????? ???? ? ?? ???? ??? ????? ?????. ???? PHP7? ??? ??? ?? ????. PHP7? ?? ??(?: PHP5)? ?? ?? ??? ???? ?????. ? ????? PHP7? PHP5? ?? ???? ???????.
