Laravel -Fassade

Laravel -Fassade
Mit dem Laravel Service Container kann der Benutzer Klassen nach Alias ​​einleiten. Der Weg zum Zugriff auf den Laravel Service -Container wird als Fassade bezeichnet. Laravel enthält viele eingebaute Fassaden, um auf verschiedene Laravel-Merkmale zuzugreifen. Die Fassade wird in Laravel verwendet, um die Anwendung überprüfbarer, flexibler und einfacher zu gestalten. Alle eingebauten Fassaden sind im Namespace definiert Beleuchtung \ Unterstützung \ Fassaden. Dieses Tutorial zeigt, wie man Laravel-integrierte Fassaden erstellt und verwendet.

Verwendung von eingebauten Fassaden

Sie müssen einen Controller erstellen, um eine integrierte Fassade zu verwenden. Führen Sie den folgenden Befehl aus, um einen Controller mit dem Namen zu erstellen TestController.

Modifiziere den TestController mit dem folgenden Code, um die Verwendung der integrierten Fassade anzuzeigen Db. Diese Fassade wird verwendet, um alle Arten von Datenbankoperationen durchzuführen. Im folgenden Code werden alle Datensätze der Tabelle des Benutzers mithilfe dessen abgerufen Db Fassade. Die Ausgabe wird nach der Ausführung des Code als Array gedruckt.

TestController.PHP:

Namespace App \ http \ Controller;
Verwenden Sie Illuminate \ http \ request;
DB verwenden;
Class TestController erweitert den Controller

öffentlicher Funktionsindex ()

$ user = db :: select ('select * von Benutzern');
echo print_r ($ user);

Fügen Sie die folgende Route in die hinzu Netz.Php Datei. Dadurch wird das anrufen Index() Methode TestController für die Route '/prüfen.''

Route :: get ('/test', 'testcontroller@index');

Führen Sie die folgende URL aus dem Browser aus.

http: // localhost/laravelPro/public/test

Erstellen Sie eine Fassade

Befolgen Sie die folgenden Schritte, um eine benutzerdefinierte Fassade in Laravel zu erstellen.

1. Erstellen Sie einen Ordner mit dem Namen Bereich unter die App Ordner und erstellen Sie eine Datei mit dem Namen Bereich.Php unter diesem Ordner mit dem folgenden Code. In der Klasse werden vier Methoden definiert, um die Fläche eines Kreises, eines Quadrats, eines Rechtecks ​​und eines Dreiecks zu berechnen. Kreis() Nimmt den Radiuswert als Parameter, um die Fläche zu berechnen. Quadrat() Nehmen Sie die Länge jeder Seite des Quadrats als Parameter, um die Fläche zu berechnen. Rechteck() Nehmen Sie die Höhe und Breite als Parameter, um die Fläche zu berechnen. Dreieck() Nehmen Sie die Grund- und Höhenwerte des Dreiecks, um die Fläche zu berechnen.

Namespace App \ Area;
Klassenbereich

öffentlicher Funktionskreis ($ radius)

zurück "Der Bereich des Kreises ist".(3.14*$ radius*$ radius);

öffentlicher Funktion Square ($ len)

Rückkehr "Der Bereich der SQAure ist".($ len*$ len);

öffentliche Funktion Rechteck ($ HEIGHT, $ WEDTH)

Rückkehr "Der Bereich des Rechtecks ​​ist".($ Höhe*$ width);

Öffentliches Funktion Dreieck ($ Base, $ HEIGE)

Rückkehr "Der Bereich des Dreiecks ist".(0.5*$ Base*$ HEIGE);

2. Fügen Sie die folgenden Routen hinzu, um auf die Methoden der Methoden zuzugreifen Bereich Klasse. Hier, wenn der Benutzer tippt 'Bereich'Nach der Basis -URL ein Objekt der Bereich Die Klasse wird definiert und die vier Methoden dieser Klasse werden mit Parameterwerten aufgerufen. Wenn Sie jedoch wie eine Fassade direkt auf die Methoden der Klasse zugreifen möchten, ohne das Objekt zu erstellen, wird ein Fehler generiert. Die nächsten Schritte zeigen Ihnen, wie Sie eine Fassade erstellen, um direkt auf die Methoden dieser Klasse zuzugreifen.

Verwenden Sie App \ Area \ Area;
Route :: get ('/area', function ()
$ Area = New Area ();
Echo $ area-> Kreis (3)."
";
Echo $ aa-> quadratisch (4)."
";
Echo $ area-> Rechteck (100.200)."
";
Echo $ area-> Dreieck (10,5)."
";
);

3. Führen Sie die folgende URL vom Browser aus, um zu überprüfen, ob die Route funktioniert.

http: // localhost/laravelPro/public/örtlich

Die folgende Ausgabe wird angezeigt, wenn die Route ordnungsgemäß funktioniert.

4. Erstellen Sie einen Ordner mit dem Namen Fassaden unter dem App Ordner und erstellen Sie eine Datei mit dem Namen Kalkulatearea.Php mit dem folgenden Code. Hier das GetFacadeAccessor () Die Methode wird innen definiert Kalkulatearea um die Zeichenfolge zurückzugeben cal_area verwendet, um die zu binden Bereich Klasse.

Namespace App \ Fassaden;
Klassenkalkulatearea erweitert sich \ Illuminate \ Support \ Fassaden \ Fassade

öffentliche statische Funktion getfacadeAccessor ()

return 'cal_area';

5. Offen Netz.Php und fügen Sie den folgenden Code hinzu, um die zu binden Bereich Klasse mit Kalkulatearea Fassadenklasse durch die Zeichenfolge cal_area.

app ()-> bind ('cal_area', function ()
Neue \ App \ Area \ Area zurückgeben;
);

6. Öffne das App.Php Datei unter der Konfiguration Ordner. Gehen Sie zum Abschnitt Aliases Array und fügen Sie die folgende Zeile am Ende des Arrays hinzu. Dies definiert Kalkulatearea Als Array -Index und der Wert ist die Fassadenklasse, die unter dem definiert ist /App/Fassade Ordner. Jetzt können Sie auf die Methoden der Methoden zugreifen Bereich Klasse als Fassade, ohne ein Objekt zu erstellen.

'Calculatearea' => app \ facades \ calculatearea :: class,

7. Fügen Sie die folgende Route in die hinzu Netz.Php Datei, um auf die Methoden der Methoden zuzugreifen Bereich Klasse mit dem Kalkulatearea Fassade.

Route :: get ('/calarea', function ()
Echo Calculatearea :: Kreis (3)."
";
Echo Calculatearea :: Square (4)."
";
Echo Calculatearea :: Rechteck (100.200)."
";
Echo Calculatearea :: Dreieck (10,5)."
";
);

8. Führen Sie die folgende URL vom Browser aus, um zu überprüfen, ob die Route funktioniert.

http: // localhost/laravelPro/public/calarea

Die folgende Ausgabe wird angezeigt, wenn die Route ordnungsgemäß funktioniert.

9. Sie können auch die verwenden Kalkulatearea Fassade wie eine eingebaute Fassade in jedem Controller. Führen Sie den folgenden Befehl aus, um einen Controller mit dem Namen zu erstellen Fassadecontroller bei dem die Kalkulatearea Fassade wird angewendet.

$ Php Artisan Make: Controller Facadecontroller

Ändern Sie den Controller mit dem folgenden Code, wobei der Kalkulatearea Fassade wird importiert und die Index() Die Methode wird im Controller hinzugefügt. Wenn das Index() Methode wird aufgerufen, die vier Methoden der Bereich Die Klasse wird aufgerufen und die formatierten Ausgänge werden mit CSS gedruckt.

Namespace App \ http \ Controller;
Verwenden Sie Illuminate \ http \ request;
benutze calculatearea;
Klassen Facadecontroller erweitern den Controller

öffentlicher Funktionsindex ()

Echo "

".Calculatearea :: Kreis (5)."

";
Echo "

".Calculatearea :: Square (5)."

";
Echo "

".Calculatearea :: Rechteck (200.200)."

";
Echo "

".Calculatearea :: Dreieck (15,5)."

";

10. Fügen Sie die folgende Route hinzu in Netz.Php Zugriff auf den Zugriff auf die Index() Methode von Fassadecontroller.

Route :: Get ('CalculateArea', 'facadeController@index');

11. Führen Sie die folgende URL vom Browser aus, um zu überprüfen, ob die Route funktioniert.

http: // localhost/laravelPro/public/calculatearea

Die folgende Ausgabe wird angezeigt, wenn die Route ordnungsgemäß funktioniert.

Abschluss

Die in diesem Artikel erörterte Funktion kann an verschiedenen Stellen wie der Controller oder Route von Laravel unter Verwendung von Fassade verwendet werden. Dies erleichtert die Entwicklungsaufgabe. Die Verwendung sowohl der integrierten als auch der benutzerdefinierten Fassaden wird in diesem Tutorial mithilfe geeigneter Beispiele erläutert. Die Verwendung einer eingebauten Fassade, Db, wird durch Verwendung eines Controllers angezeigt. Die Verwendung einer benutzerdefinierten Fassade, Kalkulatearea, wird durch Verwendung einer Route und eines Controllers angezeigt. In diesem Tutorial wurde das Konzept der Verwendung einer Fassade erläutert, um LaRavel -Entwicklern zu helfen, es in ihren Projekten anzuwenden, basierend auf ihren spezifischen Anforderungen.