Heim  >  Artikel  >  Backend-Entwicklung  >  Das Laravel-Framework implementiert die Vorgangsprotokollierungsfunktion mithilfe von Middleware

Das Laravel-Framework implementiert die Vorgangsprotokollierungsfunktion mithilfe von Middleware

不言
不言Original
2018-06-07 09:51:152461Durchsuche

In diesem Artikel wird hauptsächlich das Laravel-Framework zur Implementierung der Operationsprotokollierungsfunktion mithilfe von Middleware vorgestellt. Er analysiert die Erstellung und Einführung der Laravel-Framework-Middleware und die damit verbundenen Implementierungstechniken zur Verwendung der Middleware für die Operationsprotokollierungsfunktion in Form von Beispielen. Was benötigt wird, Freunde können darauf verweisen

Dieser Artikel beschreibt das Beispiel des Laravel-Frameworks, das die Betriebsprotokollierungsfunktion mithilfe von Middleware implementiert. Teilen Sie es allen als Referenz mit. Die Details lauten wie folgt:

Verwenden Sie Middleware für den Vorgangsprotokollierungsprozess:

1. Erstellen Sie Middleware

php artisan make:middleware AdminOperationLog

2. Die Datei ./app/Http/Middleware/AdminOperationLog.php

wird generiert lautet wie folgt:

<?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. Einführung der 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;,
    ],
  ];

Das Vorgangsprotokoll wird aufgezeichnet, wenn der Vorgang zu diesem Zeitpunkt ausgeführt wird

Verwandte Empfehlungen:

Laravel-Framework-Implementierung Der Listener führt die SQL-Anweisungsaufzeichnungsfunktion aus

Das obige ist der detaillierte Inhalt vonDas Laravel-Framework implementiert die Vorgangsprotokollierungsfunktion mithilfe von Middleware. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn