Rumah  >  Artikel  >  rangka kerja php  >  Mari belajar tentang peristiwa dan pemerhati dalam laravel bersama-sama!

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

藏色散人
藏色散人ke hadapan
2021-08-13 14:18:122244semak imbas

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 事件名称

Fail akan disimpan dalam direktori apl/Acara.

Pendengar:

Mencipta pendengar boleh dibuat menggunakan arahan berikut:

php artisan make:listener 监听器名称

Pendaftaran:

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

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

Pengedaran

event(new TestEvent());

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,
];

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

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

Pendaftaran pemerhati:
Daftar dalam penyedia perkhidmatan

User::observe(UserObserver::class);

atau dalam model Daftar dalam

public static function booted()
{
     self::observe(UserObserver::class);
}

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!

Kenyataan:
Artikel ini dikembalikan pada:jianshu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam