Rumah rangka kerja php ThinkPHP Panduan penggunaan acara dan cangkuk ThinkPHP6: melaksanakan pencetus dan pemantauan

Panduan penggunaan acara dan cangkuk ThinkPHP6: melaksanakan pencetus dan pemantauan

Aug 27, 2023 pm 03:43 PM
thinkphp peristiwa cangkuk

Panduan penggunaan acara dan cangkuk ThinkPHP6: melaksanakan pencetus dan pemantauan

Panduan Penggunaan Acara dan Cangkuk ThinkPHP6: Melaksanakan Pencetusan dan Pemantauan

Gambaran Keseluruhan
Semasa proses pembangunan, kami selalunya perlu mengendalikan beberapa acara, seperti menghantar peringatan e-mel selepas pengguna berjaya mendaftar, atau mengemas kini cache selepas produk dikeluarkan dari rak, dsb. tunggu. Untuk mengurus acara ini dengan lebih baik, ThinkPHP6 menyediakan mekanisme acara dan cangkuk, menjadikan pencetus dan pemantauan acara lebih fleksibel dan mudah.

1. Acara dan pendengar
Acara merujuk kepada perkara yang berlaku semasa pelaksanaan program, seperti pendaftaran pengguna yang berjaya, penempatan pesanan yang berjaya, dsb. Pendengar bertindak balas terhadap peristiwa, iaitu, melakukan operasi tertentu selepas peristiwa berlaku. Peristiwa dan pendengar dalam ThinkPHP6 diurus menggunakan mod pemerhati, yang memisahkan pencetus peristiwa dan operasi yang sepadan.

  1. Daftar pendengar acara
    Dalam ThinkPHP6, anda boleh mendaftarkan pendengar acara dengan mentakrifkan kelas pendengar. Kelas pendengar terletak dalam direktori aplikasi/pendengar Apabila menentukan, anda perlu mewarisi kelas thinklistenerListener dan melaksanakan kaedah handle()nya. Sebagai contoh, kami mentakrifkan kelas UserRegisteredListener untuk mendengar peristiwa kejayaan pendaftaran pengguna:
namespace applistener;

use thinklistenerListener;

class UserRegisteredListener extends Listener
{
    // 定义事件监听方法
    public function handle($event)
    {
        // 处理事件的操作
        // 比如发送邮件通知
        // ...
    }
}
Salin selepas log masuk

Dalam kaedah handle(), anda boleh menulis operasi yang perlu dilakukan selepas peristiwa yang sepadan berlaku.

  1. Hubungan sepadan antara acara berdaftar dan pendengar
    Dalam ThinkPHP6, anda boleh menentukan hubungan sepadan antara acara dan pendengar dalam fail definisi acara. Fail definisi acara terletak dalam fail app/event.php, dan hubungan yang sepadan antara acara dan pendengar ditakrifkan melalui tatasusunan konfigurasi.
return [
    'bind' => [
        'UserRegistered' => [
            'applistenerUserRegisteredListener',
        ],
    ],
];
Salin selepas log masuk

Konfigurasi di atas menunjukkan bahawa apabila acara UserRegistered berlaku, kaedah handle() UserRegisteredListener akan dicetuskan.

2. Peristiwa pencetus
Apabila peristiwa berlaku, kami boleh memberitahu sistem dengan mencetuskan acara, dengan itu melaksanakan pendengar yang sepadan.

  1. Cara mencetuskan peristiwa
    ThinkPHP6 menyediakan dua cara untuk mencetuskan peristiwa:

(1) Pencetusan langsung: Pencetus peristiwa secara terus melalui kaedah dispatch() kelas sistem.

use thinkacadeEvent;

// 触发 UserRegistered 事件,可以传递参数
Event::dispatch('UserRegistered', $userData);
Salin selepas log masuk

(2) Pencetusan dalam bekas: Cetuskan acara melalui kaedah acara() bekas Jika ia dipanggil dalam pembina, suntikan pergantungan automatik boleh digunakan.

use thinkacadeevent;

// 通过容器内触发 UserRegistered 事件,可以传递参数
app('event')->trigger('UserRegistered', $userData);
Salin selepas log masuk
  1. Buat objek acara
    Dalam kaedah pemprosesan pendengar acara, kita boleh menerima parameter yang diluluskan apabila acara dicetuskan dengan mentakrifkan objek acara. Mencipta objek acara merangkum parameter untuk kegunaan mudah dalam pendengar.
namespace applistener;

use thinklistenerListener;
use appeventUserRegisteredEvent; // 引入事件类

class UserRegisteredListener extends Listener
{
    public function handle($event)
    {
        // 将传递的参数封装为事件对象
        $userRegisteredEvent = new UserRegisteredEvent($event);
        
        // 使用事件对象的属性
        $username = $userRegisteredEvent->username;
        // ...
    }
}
Salin selepas log masuk

3. Cangkuk
Cangkuk ialah beberapa nod utama yang dikhaskan dalam sistem Dengan mendaftarkan operasi pada nod cangkuk, fungsi lanjutan yang sepadan boleh dicapai. Nod cangkuk biasanya terletak di bahagian teras sistem, seperti permulaan permintaan, penamat permintaan, resolusi laluan, dll. Mekanisme cangkuk dalam ThinkPHP6 dilaksanakan melalui Middleware, yang membolehkan kawalan proses yang lebih fleksibel.

  1. Daftar cangkuk
    Dalam ThinkPHP6, cangkuk boleh didaftarkan melalui perisian tengah. Middleware mewarisi daripada kelas thinkMiddleware Anda boleh menyesuaikan middleware dan melaksanakan operasi yang sepadan dalam middleware.
namespace appmiddleware;

use thinkacadeEvent;

class MyMiddleware
{
    public function handle($request, Closure $next)
    {
        // 钩子操作
        // ...

        return $next($request);
    }
}
Salin selepas log masuk

Dalam kaedah pemegang() di atas, anda boleh menulis operasi yang perlu dilakukan oleh nod cangkuk yang sepadan. Selepas middleware didaftarkan, ia boleh dikonfigurasikan ke dalam middleware global sistem atau middleware penghalaan.

  1. Daftar cangkuk global
    Cakuk global merujuk kepada cangkuk yang akan dicetuskan semasa keseluruhan kitaran hayat permintaan sistem. Dalam ThinkPHP6, cangkuk global boleh didaftarkan melalui item konfigurasi middleware dalam fail config/app.php.
'middleware' => [
    // 注册全局钩子
    ppmiddlewareMyMiddleware::class,
    // ...
]
Salin selepas log masuk
  1. Daftar cangkuk penghalaan
    Kail penghalaan ialah cangkuk yang akan dicetuskan hanya apabila laluan tertentu sepadan. Dalam ThinkPHP6, cangkuk penghalaan boleh didaftarkan dengan menentukan perisian tengah dalam laluan.
Route::rule('index', 'index/index')->middleware(ppmiddlewareMyMiddleware::class);
Salin selepas log masuk

4. Ringkasan
Melalui mekanisme acara dan cangkuk, kami boleh mengendalikan acara yang berlaku dalam program dengan lebih fleksibel dan melakukan operasi yang sepadan selepas acara itu berlaku. Dalam ThinkPHP6, kita boleh mendengar acara dengan mendaftarkan pendengar dan melakukan operasi khusus apabila peristiwa berlaku. Pada masa yang sama, kami juga boleh mendaftarkan middleware untuk melaksanakan cangkuk yang sepadan untuk mencapai kawalan proses yang lebih halus.

Dengan cara ini, kita boleh memisahkan dan mengasingkan pelbagai bahagian sistem dan meningkatkan kebolehskalaan dan kebolehselenggaraan sistem.

Di atas adalah kandungan berkaitan acara ThinkPHP6 dan panduan penggunaan cangkuk saya harap ia akan membantu anda untuk memahami dan menggunakan mekanisme acara dan cangkuk dalam ThinkPHP6.

Atas ialah kandungan terperinci Panduan penggunaan acara dan cangkuk ThinkPHP6: melaksanakan pencetus dan pemantauan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Arahan sembang dan cara menggunakannya
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk menjalankan projek thinkphp Bagaimana untuk menjalankan projek thinkphp Apr 09, 2024 pm 05:33 PM

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

Terdapat beberapa versi thinkphp Terdapat beberapa versi thinkphp Apr 09, 2024 pm 06:09 PM

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.

Bagaimana untuk menjalankan thinkphp Bagaimana untuk menjalankan thinkphp Apr 09, 2024 pm 05:39 PM

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.

Dapatkan acara kalendar akan datang pada skrin kunci iPhone anda Dapatkan acara kalendar akan datang pada skrin kunci iPhone anda Dec 01, 2023 pm 02:21 PM

Pada iPhone yang menjalankan iOS 16 atau lebih baru, anda boleh memaparkan acara kalendar akan datang terus pada skrin kunci. Baca terus untuk mengetahui cara ia dilakukan. Terima kasih kepada komplikasi muka jam tangan, ramai pengguna Apple Watch sudah terbiasa melihat pergelangan tangan mereka untuk melihat acara kalendar yang akan datang. Dengan kemunculan iOS16 dan widget skrin kunci, anda boleh melihat maklumat acara kalendar yang sama terus pada iPhone anda tanpa membuka kunci peranti. Widget Skrin Kunci Kalendar datang dalam dua perisa, membolehkan anda menjejaki masa acara akan datang yang seterusnya, atau menggunakan widget yang lebih besar yang memaparkan nama acara dan masanya. Untuk mula menambah widget, buka kunci iPhone anda menggunakan Face ID atau Touch ID, tekan dan tahan

Mana yang lebih baik, laravel atau thinkphp? Mana yang lebih baik, laravel atau thinkphp? Apr 09, 2024 pm 03:18 PM

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.

Cadangan pembangunan: Cara menggunakan rangka kerja ThinkPHP untuk melaksanakan tugas tak segerak Cadangan pembangunan: Cara menggunakan rangka kerja ThinkPHP untuk melaksanakan tugas tak segerak Nov 22, 2023 pm 12:01 PM

"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.

Bagaimana untuk memasang thinkphp Bagaimana untuk memasang thinkphp Apr 09, 2024 pm 05:42 PM

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.

Bagaimanakah prestasi thinkphp? Bagaimanakah prestasi thinkphp? Apr 09, 2024 pm 05:24 PM

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.

See all articles