Minor【 PHP框架】5.事件,minorphp框架事件
Jul 06, 2016 pm 02:25 PMMinor【 PHP框架】5.事件,minorphp框架事件
5.1 事件Event
Minor的 Event
類提供一個(gè)簡單的觀察者實(shí)現(xiàn),允許您在應(yīng)用程序里訂閱與監(jiān)聽事件。
5.1.1 訂閱事件
首先創(chuàng)建一個(gè)事件類:
<?<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>
然后在配置文件中注冊這個(gè)事件:
<?<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提供了一個(gè)事件管理類:Minor\Event\EventManger,通過調(diào)用該類的靜態(tài)方法fire:EventManager::fire($event)就可以觸發(fā)這個(gè)事件,例:
<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)聽器
當(dāng)觸發(fā)事件后事件管理器EventManager就會通過配置文件去觸發(fā)監(jiān)聽器的制定方法。在5.1.1配置文件中我們配置了DemoEvent的監(jiān)聽器為App\Listener\DemoListener的handle方法,可以看一下這個(gè)類的實(shí)現(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>
?

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Perbezaan antara php5 dan php8 adalah dari segi prestasi, struktur bahasa, sistem jenis, pengendalian ralat, pengaturcaraan tak segerak, fungsi perpustakaan standard dan keselamatan. Pengenalan terperinci: 1. Peningkatan prestasi Berbanding dengan PHP5, PHP8 mempunyai peningkatan besar dalam prestasi PHP8 memperkenalkan pengkompil JIT, yang boleh menyusun dan mengoptimumkan beberapa kod pelaksanaan frekuensi tinggi, dengan itu meningkatkan kelajuan berjalan; PHP8 memperkenalkan beberapa struktur dan fungsi bahasa baharu PHP8 menyokong parameter yang dinamakan, membenarkan pembangun menghantar nama parameter dan bukannya susunan parameter, dsb.

Cara menukar port 80 dalam php5: 1. Edit nombor port dalam fail konfigurasi pelayan Apache; mula berjalan pada port baru berjalan pada port.

Langkah penyelesaian untuk php5 tidak mendengar port 9000: 1. Semak fail konfigurasi PHP-FPM 2. Mulakan semula perkhidmatan PHP-FPM 3. Matikan tembok api atau konfigurasikan pemajuan port 4. Semak sama ada proses lain menduduki port 9000;

Perbezaan sintaks antara php7 dan php5 ialah: 1. PHP7 memperkenalkan pengisytiharan jenis yang ketat, manakala jenis pembolehubah PHP5 adalah tersirat 2. PHP7 memperkenalkan sokongan untuk pengisytiharan jenis skalar, tetapi PHP5 tidak memperkenalkan operator NULL Merge; PHP5 menyemak sama ada pembolehubah wujud dan tidak batal, anda perlu menggunakan pernyataan bersyarat 4. PHP7 menambah operator perbandingan baharu "<=>", tetapi PHP5 tidak 5. PHP7 memperkenalkan kelas tanpa nama yang baharu, manakala PHP5 tidak.

Apabila menggunakan PHP5, sesetengah pengguna mungkin menghadapi situasi yang port 9000 tidak boleh didengari. Pada masa ini, kami perlu melakukan beberapa kerja konfigurasi dan penyelesaian masalah untuk menyelesaikan masalah ini.

Jika anda seorang pentadbir laman web, anda mungkin menghadapi situasi di mana anda perlu menukar port PHP5 daripada port lalai 80. Proses ini mungkin sedikit tergesa-gesa, tetapi selagi anda mengikuti langkah-langkah di bawah, ia akan mudah diselesaikan.

Perbezaan antara versi php7 dan 5 termasuk peningkatan prestasi, pengisytiharan jenis skalar, pengisytiharan jenis nilai pulangan, penambahbaikan pengendalian pengecualian, kelas tanpa nama, penambahbaikan sintaks, pengendali baharu, pengendalian ralat yang dipertingkatkan dan penyingkiran beberapa ciri lama. Pengenalan terperinci: 1. Peningkatan prestasi PHP7 memperkenalkan enjin Zend baharu, bernama Zend Engine 3.0, yang membawa peningkatan prestasi yang ketara , pengumpulan sampah dipertingkatkan, dsb.

PHP ialah bahasa pengaturcaraan bahagian pelayan yang digunakan secara meluas untuk membangunkan laman web dan aplikasi dinamik. Dalam beberapa tahun kebelakangan ini, keluaran PHP7 telah menarik perhatian. PHP7 mempunyai banyak penambahbaikan dan pengoptimuman berbanding versi sebelumnya (seperti PHP5). Dalam artikel ini, kami akan meneroka perbezaan sintaks antara PHP7 dan PHP5.
