Rumah >rangka kerja php >ThinkPHP >Kuasai sepenuhnya pengikatan, pemantauan dan langganan acara thinkphp

Kuasai sepenuhnya pengikatan, pemantauan dan langganan acara thinkphp

WBOY
WBOYke hadapan
2022-04-13 12:56:383736semak imbas

Artikel ini membawakan anda pengetahuan yang berkaitan tentang thinkphp, yang terutamanya memperkenalkan isu berkaitan pengikatan, pemantauan dan langganan acara Kelebihan acara berbanding perisian tengah ialah peristiwa lebih baik daripada perisian tengah Untuk kedudukan yang lebih tepat , mari kita lihat di bawah ini saya harap ia akan membantu semua orang.

Kuasai sepenuhnya pengikatan, pemantauan dan langganan acara thinkphp

Pembelajaran yang disyorkan: "Tutorial Video PHP"

Apakah itu acara

Kelebihan peristiwa berbanding perisian tengah ialah peristiwa diletakkan lebih tepat (atau lebih berbutir) daripada perisian tengah dan lebih sesuai untuk pengembangan beberapa senario perniagaan. Sebagai contoh, kami biasanya menghadapi pengguna yang perlu melakukan beberapa siri operasi selepas mendaftar atau log masuk. Melalui sistem acara, kami boleh melengkapkan pengembangan operasi log masuk tanpa menceroboh kod asal, mengurangkan gandingan sistem sementara masih memenuhi keperluan perniagaan .

Penggunaan acara dalam TP6

Penjelasan laman web rasmi, tiada contoh, di sini saya hanya akan memberitahu anda cara menggunakannya, anda akan mendapati lebih banyak operasi selepas menggunakannya

1. Pemantauan acara

  • Penjanaan baris arahan pemantauan php think make:listener UserLogin

Secara amnya disyorkan untuk membuat terus fail definisi acara (event.php) Tentukan pemantauan acara yang sepadan.

return [
    'bind'    =>    [
        'UserLogin' => 'app\event\UserLogin',
        // 更多事件绑定
    ],
    'listen'  =>    [
        'UserLogin'    =>    ['app\listener\UserLogin'],
        // 更多事件监听
    ],
];

2. Langganan acara

  • Baris arahan php think make:subscribe User
    Kelas appsubscribeUser akan dijana secara lalai, atau anda boleh menentukan nama kelas lengkap untuk dijana .
<?php
namespace app\subscribe;

class User
{
    public function onUserLogin($user)
    {
        // UserLogin事件响应处理
    }

    public function onUserLogout($user)
    {
        // UserLogout事件响应处理
    }
}

3. Langganan tersuai

Jika anda ingin menyesuaikan kaedah langganan (atau spesifikasi kaedah), anda boleh menentukan pelaksanaan kaedah langganan.

<?php
namespace app\subscribe;

use think\Event;

class User
{
    public function onUserLogin($user)
    {
        // UserLogin事件响应处理
    }

    public function onUserLogout($user)
    {
        // UserLogout事件响应处理
    }

    public function subscribe(Event $event)
    {
        $event->listen('UserLogin', [$this,'onUserLogin']);
        $event->listen('UserLogout',[$this,'onUserLogout']);
    }
}

Kemudian daftarkan pelanggan acara dalam fail definisi acara

return [
    'bind'    =>    [
        'UserLogin' => 'app\event\UserLogin',
        // 更多事件绑定
    ],
    'listen'  =>    [
        'UserLogin'    =>    ['app\listener\UserLogin'],
        // 更多事件监听
    ],
    'subscribe'    =>    [
       'app\subscribe\User',
        // 更多事件订阅
    ],
];

Pencetus peristiwa

// 触发UserLogin事件 用于执行用户登录后的一系列操作
Event::trigger('UserLogin');
或者使用助手函数
event('UserLogin');

Kajian yang disyorkan: "Tutorial video PHP

Atas ialah kandungan terperinci Kuasai sepenuhnya pengikatan, pemantauan dan langganan acara thinkphp. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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