Rumah > rangka kerja php > Laravel > teks badan

Mari belajar tentang peristiwa dan pemerhati dalam laravel bersama-sama!

藏色散人
Lepaskan: 2021-08-18 09:01:53
ke hadapan
2261 orang telah melayarinya

Lajur tutorial laravel berikut akan memperkenalkan kepada anda acara dan pemerhati dalam laravel, saya harap ia dapat membantu rakan-rakan yang memerlukan.

1: Peristiwa dan pendengar

Acara ialah istilah yang agak luas dan ia boleh mewakili tindakan yang diambil. Apa yang muncul bersama-sama acara ialah pendengar, yang digunakan untuk memantau perkara yang anda lakukan dan untuk melakukan pemprosesan seterusnya pada tingkah laku anda.
Sistem acara menyediakan cara yang bagus untuk memisahkan pelbagai aspek aplikasi, kerana satu acara boleh mempunyai berbilang pendengar yang bebas antara satu sama lain. Sebagai contoh, anda mungkin mahu menghantar pemberitahuan kepada pengguna setiap kali pesanan dihantar. Daripada menggabungkan kod pemprosesan pesanan kepada kod pemberitahuan, anda boleh menulis acara yang boleh didengari.

Acara:
Jika rangka kerja Laravel ingin mencipta acara, anda boleh menciptanya dengan arahan berikut:

php artisan make:event 事件名称
Salin selepas log masuk

Fail akan disimpan dalam direktori apl/Acara.

Pendengar:

Mencipta pendengar boleh dibuat menggunakan arahan berikut:

php artisan make:listener 监听器名称
Salin selepas log masuk

Pendaftaran:

Selepas acara dan pendengar dibuat, ia perlu digabungkan. Kami boleh mendaftarkannya dalam penyedia perkhidmatan EventServiceProvider. Seperti berikut:

    protected $listen = [
        事件名称 => [
            监听器名称,
         .
        ],
    ];
Salin selepas log masuk

Pengedaran

event(new TestEvent());
Salin selepas log masuk

2: Acara model

Acara model khusus untuk model Fungsi tambahan tambahan. Ia mencipta peristiwa dan pendengar yang sepadan untuk kita. Apabila menggunakan acara model, kita perlu mematuhi peraturan yang diberikan kepada kita oleh model:

  • diambil: Dicetuskan selepas mendapat contoh model
  • mencipta: Dicetuskan sebelum dimasukkan ke dalam pangkalan data
  • dicipta: Dicetuskan selepas dimasukkan ke dalam pangkalan data
  • kemas kini: Dicetuskan sebelum mengemas kini kepada pangkalan data
  • dikemas kini: Dicetuskan selepas mengemas kini ke pangkalan data
  • simpan: Dicetuskan sebelum menyimpan ke pangkalan data (masukkan/ Sebelum mengemas kini, ia akan mencetuskan tanpa mengira sisipan atau kemas kini)
  • disimpan: Dicetuskan selepas menyimpan ke pangkalan data (selepas memasukkan/kemas kini, ia akan mencetuskan tanpa mengira sisipan atau kemas kini)
  • memadam: Dicetuskan sebelum memadamkan rekod daripada pangkalan data
  • dipadamkan: Dicetuskan selepas memadamkan rekod daripada pangkalan data
  • memulihkan: Dicetuskan sebelum memulihkan rekod yang dipadam lembut
  • dipulihkan: Dicetuskan selepas memulihkan rekod yang dipadam lembut

Perlu diikat pada model

protected $dispatchesEvents = [
        'saving' => \App\Events\TestEvent::class,
//        'updated' => \App\Events\TestEvent::class,
];
Salin selepas log masuk

3: Pemerhati

Acara perlu dikaitkan dengan pendengar Apabila bilangan pendengar meningkat, kita masih perlu Mendaftar pelaksanaan akan menjadi lebih menyusahkan. Jika anda mendengar berbilang acara pada model, anda boleh menggunakan pemerhati untuk menyusun pendengar ini ke dalam kelas yang berasingan.

Penggunaan pemerhati:

Pemerhati boleh dibuat menggunakan arahan berikut:

php artisan make:observer
Salin selepas log masuk

Jika anda ingin mengaitkannya secara langsung dengan model , anda juga boleh terus menambah parameter untuk dikaitkan dengan model:

php artisan make:observer UserObserver --model=User
Salin selepas log masuk

Pendaftaran pemerhati:
Daftar dalam penyedia perkhidmatan

User::observe(UserObserver::class);
Salin selepas log masuk

atau dalam model Daftar dalam

public static function booted()
{
     self::observe(UserObserver::class);
}
Salin selepas log masuk

Cadangan berkaitan: Lima tutorial video Laravel terkini

Atas ialah kandungan terperinci Mari belajar tentang peristiwa dan pemerhati dalam laravel bersama-sama!. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:jianshu.com
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan