thinkphp 事件

使用助手函數註冊事件

<?php
namespace app\index\controller;

use app\index\model\User;
class Index
{

    public function Index(){
        // 觸發UserLogin事件 使用助手函數
        event('UserLogin');
        return "ming";
    }

}

生成事件類

php think make:event UserLogin

事件類添加方法

<?php

namespace app\event;

use app\index\model\User;

class UserLogin{
    public $user;

    public function _construct(User $user){
        $this->user = $user;
    }
}

這裏依賴於model目錄下的User類

事件類添加事件標識

此時目錄如下
2019-05-25-15-09-41----

添加標識

<?php
// +----------------------------------------------------------------------
// | ThinkPHP [ WE CAN DO IT JUST THINK ]
// +----------------------------------------------------------------------
// | Copyright (c) 2006~2018 http://thinkphp.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: liu21st <[email protected]>
// +----------------------------------------------------------------------

// 事件定義文件
return [
    'bind'      => [
        'UserLogin' => 'app\event\UserLogin',
    ],

    'listen'    => [
        'AppInit'  => [],
        'HttpRun'  => [],
        'HttpEnd'  => [],
        'LogLevel' => [],
        'LogWrite' => [],
    ],

    'subscribe' => [
    ],
];

此時訪問 http://localhost:8082/ 可以發現已經訪問成功

事件監聽

手動註冊一個事件監聽


    /**
     * 事件監聽
     */
    public function listen(){
        Event::listen('UserLogin', function ($user){
            
        });
    }

可以使用命令行生成事件監聽

php think make:listener UserLogin

事件訂閱同理

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章