Minor【 PHP框架】5.事件,minorphp框架事件
Jul 06, 2016 pm 02:25 PMMinor【 PHP框架】5.事件,minorphp框架事件
5.1 事件Event
Minor的 Event
類提供一個簡單的觀察者實現(xiàn),允許您在應(yīng)用程序里訂閱與監(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
人工智慧驅(qū)動的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6
視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

php5和php8的差異在效能、語言結(jié)構(gòu)、型別系統(tǒng)、錯誤處理、非同步程式設(shè)計、標準函式庫函數(shù)和安全性等方面。詳細介紹:1、效能提升,PHP8相對於PHP5來說在效能方面有了巨大的提升,PHP8引入了JIT編譯器,可以對一些高頻執(zhí)行的程式碼進行編譯和最佳化,從而提高運行速度;2、語言結(jié)構(gòu)改進,PHP8引入了一些新的語言結(jié)構(gòu)和功能,PHP8支援命名參數(shù),允許開發(fā)者透過參數(shù)名稱而不是參數(shù)順序等等。

php5改80埠的方法:1.編輯Apache伺服器的設(shè)定檔中的連接埠號碼;2、輯PHP的設(shè)定檔以確保PHP在新連接埠上運作;3、重新啟動Apache伺服器,PHP應(yīng)用程式將開始在新的連接埠上運行。

php5沒有監(jiān)聽9000埠解決方法步驟:1、檢查PHP-FPM設(shè)定檔;2、重啟PHP-FPM服務(wù);3、關(guān)閉防火牆或設(shè)定埠轉(zhuǎn)送;4、檢查其他程序是否佔用9000埠。

php7和php5語法區(qū)別有:1、PHP7引入了嚴格的類型聲明,而PHP5變量的類型是隱式的;2、PHP7引入了對標量類型聲明的支持,而PHP5並沒有;3、PHP7引入了NULL合併運算符,而PHP5檢查一個變數(shù)是否存在且不為null,需要使用條件語句;4、PHP7加入了新的比較運算子“<=>”,而PHP5並沒有;5、PHP7引入新特性匿名類,而PHP5並沒有。

在使用PHP5時,有些使用者可能會遇到無法監(jiān)聽連接埠9000的情況。這時,我們需要進行一些配置和排查工作來解決這個問題。

如果你是網(wǎng)站管理員,你可能會碰到需要將 PHP5 的連接埠從預(yù)設(shè)的 80 連接埠進行修改的情況。這個過程可能會稍有進急,但是只要跟著以下步驟操作,一定會很容易地完成。

php7的版本和5的不同有性能提升、標量類型聲明、返回值類型聲明、異常處理改進、匿名類、語法改進、新的運算符、增強的錯誤處理和移除了一些舊特性等。詳細介紹:1、性能提升,PHP7引入了全新的Zend引擎,名為Zend Engine 3.0,帶來了顯著的性能提升,PHP7的性能比PHP5提高了大約兩倍,這主要是通過改進了內(nèi)存管理、優(yōu)化了函數(shù)調(diào)用和異常處理、增強了垃圾回收等等。

PHP是一種廣泛使用的伺服器端程式語言,被用於開發(fā)動態(tài)網(wǎng)站和應(yīng)用程式。近些年,PHP7的發(fā)布引起了一些關(guān)注。 PHP7比之前的版本(如PHP5)有許多改進和最佳化。在本文中,我們將探討PHP7和PHP5在語法上的差異。
