国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

Laravel框架實現利用監聽器進行sql語句記錄功能

2024-05-04 21:50:45
字體:
來源:轉載
供稿:網友

本文實例講述了Laravel框架實現利用監聽器進行sql語句記錄功能。分享給大家供大家參考,具體如下:

利用監聽器進行sql語句記錄

1、監聽sql語句的事件類已經定義,直接創建監聽器類即可:

# 監聽sql

make:listener QueryListener --event=Illuminate/Database/Events/QueryExecuted

2、監聽器類代碼

./app/Listeners/QueryListener.php

  1. <?php 
  2. namespace App/Listeners; 
  3. use Illuminate/Database/Events/QueryExecuted; 
  4. use Illuminate/Queue/InteractsWithQueue; 
  5. use Illuminate/Contracts/Queue/ShouldQueue; 
  6. use App/Http/Models/OperationLog; 
  7. class QueryListener 
  8.   /** 
  9.    * Create the event listener. 
  10.    * 
  11.    * @return void 
  12.    */ 
  13.   public function __construct() 
  14.   { 
  15.     // 
  16.   } 
  17.   /** 
  18.    * Handle the event. 
  19.    * 
  20.    * @param QueryExecuted $event 
  21.    * @return void 
  22.    */ 
  23.   public function handle(QueryExecuted $event
  24.   { 
  25.     $sql = str_replace("?""'%s'"$event->sql); 
  26.     $log = vsprintf($sql$event->bindings); 
  27.     # 此處$uid定義是依賴于中間件記錄操作日志代碼 
  28.     $uid = isset($_SERVER['admin_uid']) ? $_SERVER['admin_uid'] : 0; 
  29.     if('select' != substr($log , 0 , 6)){ 
  30.       if('insert into `operationLog`' != substr($log , 0 , 26)){ 
  31.         $OperationLog = new OperationLog(); 
  32.         $OperationLog->uid = $uid
  33.         $OperationLog->sql = $log
  34.         $OperationLog->input = ''
  35.         $OperationLog->save(); 
  36.       } //Vevb.com 
  37.     } 
  38.   } 

3、引入監聽器

./app/Providers/EventServiceProvider.php

  1. protected $listen = [ 
  2.     ... 
  3.     /Illuminate/Database/Events/QueryExecuted::class => [ 
  4.       'App/Listeners/QueryListener' 
  5.     ], 
  6.     ... 
  7.   ]; 

此時進行操作時就會記錄sql日志。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 密山市| 二连浩特市| 虹口区| 大庆市| 连州市| 耿马| 星座| 海口市| 长泰县| 平果县| 安达市| 永胜县| 宣化县| 永寿县| 石河子市| 寿宁县| 勐海县| 海阳市| 阿尔山市| 西吉县| 南宁市| 双辽市| 越西县| 微博| 平顶山市| 安义县| 松滋市| 原阳县| 高雄县| 牡丹江市| 柘城县| 新野县| 长子县| 阳高县| 林周县| 松溪县| 常德市| 岫岩| 西丰县| 浑源县| 兰坪|