Maison  >  Article  >  développement back-end  >  Le framework Laravel implémente la fonction de journalisation des opérations à l'aide d'un middleware

Le framework Laravel implémente la fonction de journalisation des opérations à l'aide d'un middleware

不言
不言original
2018-06-07 09:51:152462parcourir

Cet article présente principalement le framework Laravel pour implémenter la fonction de journalisation des opérations à l'aide d'un middleware. Il analyse la création et l'introduction du middleware du framework Laravel et les techniques d'implémentation associées à l'utilisation du middleware pour la fonction de journalisation des opérations sous forme d'exemples. Ce qui est nécessaire Les amis peuvent se référer à

Cet article décrit l'exemple du framework Laravel implémentant la fonction de journalisation des opérations à l'aide d'un middleware. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :

Utiliser le middleware pour le processus de journalisation des opérations :

Créer un middleware

php artisan make:middleware AdminOperationLog

2. Le fichier ./app/Http/Middleware/AdminOperationLog.php a été généré

Le le code est le suivant :

<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use App\Http\Models\OperationLog;
class AdminOperationLog
{
  /**
   * Handle an incoming request.
   *
   * @param \Illuminate\Http\Request $request
   * @param \Closure $next
   * @return mixed
   */
  public function handle($request, Closure $next)
  {
    $user_id = 0;
    if(Auth::check()) {
      $user_id = (int) Auth::id();
    }
    $_SERVER[&#39;admin_uid&#39;] = $user_id;
    if(&#39;GET&#39; != $request->method()){
      $input = $request->all();
      $log = new OperationLog(); # 提前创建表、model
      $log->uid = $user_id;
      $log->path = $request->path();
      $log->method = $request->method();
      $log->ip = $request->ip();
      $log->sql = &#39;&#39;;
      $log->input = json_encode($input, JSON_UNESCAPED_UNICODE);
      $log->save();  # 记录日志
    }
    return $next($request);
  }
}

3. Introduction du middleware ./app/Http/Kernel.php

protected $middlewareGroups = [
    &#39;web&#39; => [
      ...
      \App\Http\Middleware\AdminOperationLog::class,
      ...
    ],
    &#39;api&#39; => [
      &#39;throttle:60,1&#39;,
      &#39;bindings&#39;,
    ],
  ];

Lors du fonctionnement à ce moment, le journal des opérations sera enregistré

Recommandations associées :

Le framework Laravel implémente la fonction d'enregistrement des instructions SQL à l'aide d'écouteurs

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn