Terdapat dua cara untuk melaksanakan mekanisme acara: melalui pemantauan dan melalui langganan
1 Melalui pemantauan
1 kelas mendengar : Masukkan direktori akar rangka kerja dalam mod baris arahan dan laksanakan
php think make:listener
Contohnya:
>php think make:listener UserListener
Selepas pelaksanaan, kelas app
pendengar下生成
UserListener akan berada dalam
2. Konfigurasikan mendengar: Konfigurasikan kelas UserListener dalam tatasusunan dengar fail
'dengar' => [
'testEvent' => ['applistenerUserListener']
],
3 Pencetus mendengar: Tambahkan kod berikut di mana anda perlu mencetuskan pendengaran
event('testEvent');
. Nota: Parameter testEvent di sini ialah nama acara dan boleh ditakrifkan sewenang-wenangnya, tetapi ia mesti konsisten dengan nama kunci yang dikonfigurasikan dalam fail event.php.
Anda boleh membawa parameter kedua apabila mencetuskan pendengar. Anda boleh menghantar sebarang data ke kelas UserListener melalui parameter kedua, iaitu parameter kaedah pemegang (jika anda tidak faham maksudnya, sila fahami dengan kod lengkap di bawah).
4 Proses logik mendengar: Lengkapkan logik perniagaan dalam kaedah pemegang kelas UserListener
Kod lengkap adalah seperti berikut
Lain-lain: kelas untuk ujian
<?php namespace app\controller; class Other { public function hello() { echo 'hello function'; } }
Indeks: Kelas yang mencetuskan pendengaran
UserListener: Kelas mendengar acara
<?php namespace app\listener; class UserListener { /** * 事件監(jiān)聽(tīng)處理 * * @return mixed */ public function handle($event) { //當(dāng)調(diào)用Index類(lèi)的test1方法時(shí)該代碼有效,$event為null var_dump($event); //當(dāng)調(diào)用Index類(lèi)的test2方法時(shí)該代碼有效,$event為字符串hello var_dump($event); //當(dāng)調(diào)用Index類(lèi)的test3方法時(shí)該代碼有效,$event為Index類(lèi)的實(shí)例 //可以訪問(wèn)Index類(lèi)的name變量 echo $event->name; //當(dāng)調(diào)用Index類(lèi)的test4方法時(shí)該代碼有效,$event為Other類(lèi)的實(shí)例 //可以調(diào)用Other類(lèi)的hello方法 echo $event->hello(); } }2 Dengan melanggan
1
dalam arahan Masukkan direktori akar rangka kerja dalam mod baris dan laksanakanphp think make:subscribeContohnya:php think make:subscribe UserSubscribeSelepas pelaksanaan, kelas UserSubscribe akan dijana di bawahappsubscribe. 2. Konfigurasikan pemantauan Konfigurasikan kelas UserSubscribe dalam tatasusunan langganan fail "direktori akar rangka kerja" appevent.php, seperti berikut: ' langgan ' => ['appsubscribeUserSubscribe'],Nota: Untuk menguji kesan, padamkan UserListener yang dikonfigurasikan di atas daripada tatasusunan dengar3Sama seperti kaedah pertama
4. Memproses logik pemantauan
Terdapat dua kaedah untuk memproses logik pemantauan, yang saya panggil pengikatan automatik dan pengikatan manual. Pengikatan manual dan pengikatan automatik adalah saling eksklusif, anda hanya boleh memilih satu atau yang lain.
4.1 Pengikatan automatik
Kaedah ontestEvent yang melengkapkan logik perniagaan harus ditambahkan pada kelas UserSubscribe. Nama kaedah yang ditambahkan tidak boleh ditakrifkan sewenang-wenangnya Peraturannya adalah untuk menambah di hadapan nama acara. Oleh kerana nama acara yang kami takrifkan dalam event.php ialah testEvent, nama kaedah ialah ontestEvent (perhatikan kesnya). Selepas kaedah mendengar ditakrifkan, ia terikat secara automatik kepada acara, jadi saya memanggilnya mengikat automatik.
Kod lengkap adalah seperti berikut
Kod kelas Lain dan Indeks adalah sama dengan pendekatan pertama
UserSubscribe: kelas langganan acara
<?php namespace app\subscribe; class UserSubscribe { public function ontestEvent($user) { //當(dāng)調(diào)用Index類(lèi)的test1方法時(shí)該代碼有效,$event為null var_dump($user); //當(dāng)調(diào)用Index類(lèi)的test2方法時(shí)該代碼有效,$event為字符串hello var_dump($user); //當(dāng)調(diào)用Index類(lèi)的test3方法時(shí)該代碼有效,$event為Index類(lèi)的實(shí)例 //可以訪問(wèn)Index類(lèi)的name變量 echo $user->name; //當(dāng)調(diào)用Index類(lèi)的test4方法時(shí)該代碼有效,$event為Other類(lèi)的實(shí)例 //可以調(diào)用Other類(lèi)的hello方法 echo $user->hello(); } }4.2 Pengikatan manual
Pertama, cipta kelas acara yang bertanggungjawab untuk mengendalikan logik perniagaan tertentu. Masukkan direktori akar rangka kerja dalam mod baris arahan dan laksanakan:
php think make:event Contohnya:php think make:event UserEvent
Selepas pelaksanaan, kelas UserEvent akan dijana di bawahappevent. Kemudian tentukan kaedah pemegang dalam kelas ini, yang mempunyai parameter masuk. Nama kaedah dan nama parameter yang diluluskan boleh ditakrifkan sewenang-wenangnya. Logik perniagaan tertentu boleh dikendalikan dalam kaedah pemegang.
Seterusnya, tambahkan kaedah langgan dalam kelas UserSubscribe, yang perlu menerima objek Acara sebagai parameter. Seterusnya, ikat pendengar acara kepada kaedah pemegang kelas UserEvent dalam fungsi ini. Seperti berikut:
$event->listen('testEvent', [app('app\event\UserEvent'), 'handle']);Kod lengkap adalah seperti berikut
Kod kelas lain dan Indeks adalah sama dengan pendekatan pertama
UserSubscribe: kelas langganan acara
UserEvent: Kelas pengendalian acara
<?php declare (strict_types = 1); namespace app\event; class UserEvent { public function handle($user) { //當(dāng)調(diào)用Index類(lèi)的test1方法時(shí)該代碼有效,$user為null var_dump($user); //當(dāng)調(diào)用Index類(lèi)的test2方法時(shí)該代碼有效,$user為字符串hello var_dump($user); //當(dāng)調(diào)用Index類(lèi)的test3方法時(shí)該代碼有效,$user為Index類(lèi)的實(shí)例 //可以訪問(wèn)Index類(lèi)的name變量 echo $user->name; //當(dāng)調(diào)用Index類(lèi)的test4方法時(shí)該代碼有效,$user為Other類(lèi)的實(shí)例 //可以調(diào)用Other類(lèi)的hello方法 echo $user->hello(); } }Atas ialah kandungan terperinci Bagaimana untuk melaksanakan mekanisme acara Thinkphp. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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)

Untuk menjalankan projek ThinkPHP, anda perlu: memasang Komposer untuk mencipta projek, masukkan direktori projek dan laksanakan php bin/console serve;

ThinkPHP mempunyai berbilang versi yang direka untuk versi PHP yang berbeza. Versi utama termasuk 3.2, 5.0, 5.1 dan 6.0, manakala versi kecil digunakan untuk membetulkan pepijat dan menyediakan ciri baharu. Versi stabil terkini ialah ThinkPHP 6.0.16. Apabila memilih versi, pertimbangkan versi PHP, keperluan ciri dan sokongan komuniti. Adalah disyorkan untuk menggunakan versi stabil terkini untuk prestasi dan sokongan terbaik.

Langkah-langkah untuk menjalankan ThinkPHP Framework secara setempat: Muat turun dan nyahzip ThinkPHP Framework ke direktori tempatan. Buat hos maya (pilihan) yang menunjuk ke direktori akar ThinkPHP. Konfigurasikan parameter sambungan pangkalan data. Mulakan pelayan web. Mulakan aplikasi ThinkPHP. Akses URL aplikasi ThinkPHP dan jalankannya.

Perbandingan prestasi rangka kerja Laravel dan ThinkPHP: ThinkPHP umumnya berprestasi lebih baik daripada Laravel, memfokuskan pada pengoptimuman dan caching. Laravel berfungsi dengan baik, tetapi untuk aplikasi yang kompleks, ThinkPHP mungkin lebih sesuai.

Langkah pemasangan ThinkPHP: Sediakan persekitaran PHP, Komposer dan MySQL. Buat projek menggunakan Komposer. Pasang rangka kerja dan kebergantungan ThinkPHP. Konfigurasikan sambungan pangkalan data. Hasilkan kod aplikasi. Lancarkan aplikasi dan lawati http://localhost:8000.

ThinkPHP ialah rangka kerja PHP berprestasi tinggi dengan kelebihan seperti mekanisme caching, pengoptimuman kod, pemprosesan selari dan pengoptimuman pangkalan data. Ujian prestasi rasmi menunjukkan bahawa ia boleh mengendalikan lebih daripada 10,000 permintaan sesaat, dan digunakan secara meluas dalam tapak web dan sistem perusahaan berskala besar seperti JD.com dan Ctrip dalam aplikasi praktikal.

Cadangan pembangunan: Cara menggunakan rangka kerja ThinkPHP untuk pembangunan API Dengan pembangunan berterusan Internet, kepentingan API (Antara Muka Pengaturcaraan Aplikasi) telah menjadi semakin menonjol. API ialah jambatan untuk komunikasi antara aplikasi yang berbeza Ia boleh merealisasikan perkongsian data, panggilan fungsi dan operasi lain, dan menyediakan pembangun kaedah pembangunan yang agak mudah dan pantas. Sebagai rangka kerja pembangunan PHP yang sangat baik, rangka kerja ThinkPHP adalah cekap, berskala dan mudah digunakan.

"Cadangan Pembangunan: Cara Menggunakan Rangka Kerja ThinkPHP untuk Melaksanakan Tugas Asynchronous" Dengan perkembangan pesat teknologi Internet, aplikasi Web mempunyai keperluan yang semakin tinggi untuk mengendalikan sejumlah besar permintaan serentak dan logik perniagaan yang kompleks. Untuk meningkatkan prestasi sistem dan pengalaman pengguna, pembangun sering mempertimbangkan untuk menggunakan tugas tak segerak untuk melaksanakan beberapa operasi yang memakan masa, seperti menghantar e-mel, memproses muat naik fail, menjana laporan, dsb. Dalam bidang PHP, rangka kerja ThinkPHP, sebagai rangka kerja pembangunan yang popular, menyediakan beberapa cara mudah untuk melaksanakan tugas tak segerak.
