2017-11-19 7 views
0

Was ist diese Schließung $ nächste. Ok ich rate ein Objekt, aber wie eine Objektreferenz eine Argument $ Anfrage akzeptiert? Sollte es nicht Methode anrufen. Closure in PHP sind anonyme Funktion, aber ist das nächste eine anonyme Funktionsvariable wo sonst definiert? Ich sehe die Handle-Methode in Class FrameGuard, aber das obige Beispiel hat nicht einmal die FrameGuard-Klasse instanziiert. Kann ich sagen, dass Laravel nicht der oop-Syntax folgt?Hat Laravel eine neue Programmier-Syntax eingeführt?

public function handle($request, Closure $next) 
    { 
     if ($request->age <= 200) { 
      return redirect('home'); 
     } 

     return $next($request); 
    } 
+1

Laravel Middleware implementieren die [Pipeline] (https://en.wikipedia.org/wiki/Pipeline_ (Software)) Software-Architektur-Muster, die eine gültige OOP-Muster ist – apokryfos

+0

Vielen Dank, ich werde in es aussehen – webion123

Antwort

0

Jetzt ist es nicht. Laravel ist nur ein Framework, so dass Sie einige alltägliche Aktionen einfacher und schneller erledigen können.

Offensichtlich Laravel folgt OOP und es gibt keine so etwas wie "OOP-Syntax", soweit ich weiß. Aber es gibt Teile in Laravel und jeden anderen Rahmen, die nicht so offensichtlich sind.

Grundsätzlich in Middleware haben Sie Zugriff auf Anfrage und Schließung. Sie können über Middleware here lesen. Wenn Sie im Schöpflöffel graben wollen, können Sie sich \Illuminate\Pipeline\Pipeline Klasse anschauen - es gibt carry Methode in dort, die für das Schleifen über jede verwendete Middleware verantwortlich ist.

Verwandte Themen