Laravel Facade

Laravel Facade
Laravel Service Container lar brukeren starte klasser etter alias. Måten å få tilgang til Laravel Service Container kalles en fasade. Laravel inneholder mange innebygde fasader for å få tilgang til forskjellige Laravel-funksjoner. Fasaden brukes i Laravel for å gjøre applikasjonen mer testbar, fleksibel og enklere. Alle innebygde fasader er definert i navneområdet Illuminat \ Support \ Facades. Denne opplæringen viser hvordan du lager og bruker Laravel innebygde fasader.

Bruk av innebygde fasader

Du må opprette en kontroller for å bruke en innebygd fasade. Kjør følgende kommando for å opprette en kåret kontroller TestController.

Endre TestController med følgende kode for å vise bruken av den innebygde fasaden Db. Denne fasaden brukes til å utføre alle typer databaseoperasjoner. I følgende kode vil alle poster over brukerens tabell bli hentet ved å bruke Db Fasade. Utgangen vil bli skrevet ut som en matrise etter å ha utført koden.

TestController.php:

namespace -app \ http \ kontrollere;
Bruk Illuminate \ http \ forespørsel;
Bruk DB;
Class TestController utvider kontrolleren

offentlig funksjonsindeks ()

$ brukere = db :: velg ('velg * fra brukere');
ekko print_r ($ brukere);

Legg til følgende rute i Web.PHP fil. Dette vil kalle indeks () metode TestController for ruten '/test.'

Rute :: Get ('/Test', 'TestController@Index');

Kjør følgende URL fra nettleseren.

http: // localhost/laravelpro/public/test

Lag en fasade

Følg trinnene nedenfor for å lage en tilpasset fasade i Laravel.

1. Opprett en mappe som heter Område under appen mappe og opprette en fil som heter Område.PHP Under denne mappen med følgende kode. Fire metoder er definert i klassen for å beregne området til en sirkel, firkantet, rektangel og trekant. Sirkel() vil ta radiusverdien som en parameter for å beregne området. Torget() vil ta lengden på hver side av torget som en parameter for å beregne området. Rektangel() vil ta høyden og bredden som parametere for å beregne området. Triangel() vil ta basen og høydeverdiene til trekanten for å beregne området.

namespace -app \ Area;
klasseområde

offentlig funksjonssirkel ($ radius)

Returner "området for sirkelen er".(3.14*$ radius*$ radius);

Public Function Square ($ Len)

returner "Sqaure -området er".($ len*$ len);

offentlig funksjon rektangel ($ høyde, $ bredde)

Returner "området med rektangel er".($ høyde*$ bredde);

offentlig funksjon Triangle ($ base, $ høyde)

Returner "området med trekant er".(0.5*$ base*$ høyde);

2. Legg til følgende ruter for å få tilgang til metodene til Område klasse. Her, når brukeren typer 'område'Etter basen -url, et objekt av Område Klasse vil bli definert, og de fire metodene i denne klassen kalles med parameterverdier. Men hvis du vil få tilgang til metodene i klassen direkte som en fasade uten å lage objektet, vil det bli generert en feil. De neste trinnene viser deg hvordan du lager en fasade for å få tilgang til metodene i denne klassen direkte.

Bruk app \ Area \ Area;
Rute :: Get ('/Area', funksjon ()
$ areal = nytt område ();
ekko $ område-> sirkel (3).""
";
Echo $ Area-> Square (4).""
";
Echo $ Area-> Rectangle (100.200).""
";
Echo $ Area-> Triangle (10,5).""
";
);

3. Kjør følgende URL fra nettleseren for å sjekke om ruten fungerer.

http: // localhost/laravelpro/public/Area

Følgende utgang vises hvis ruten fungerer ordentlig.

4. Opprett en mappe som heter Fasader under app mappe og opprette en fil som heter CalculateArea.PHP med følgende kode. Her, The getFacadeaccessor () Metoden er definert inne CalculateArea For å returnere strengen cal_area brukes til å binde Område klasse.

namespace -app \ fasader;
Klasse CalculaTearea utvider \ Illuminate \ Support \ Facades \ Facade

offentlig statisk funksjon getFacadeAccessor ()

returner 'cal_area';

5. Åpen Web.PHP og legg til følgende kode for å binde Område klasse med CalculateArea Fasadeklasse etter strengen cal_area.

app ()-> bind ('cal_area', funksjon ()
Returner nytt \ App \ Area \ Area;
);

6. Åpne app.PHP fil under konfigurasjon mappe. Gå til aliases -array -delen og legg til følgende linje på slutten av matrisen. Dette definerer CalculateArea som en matriseindeks og verdien er fasadeklassen som er definert under /app/fasade mappe. Nå kan du få tilgang til metodene til Område klasse som fasade uten å lage noe objekt.

'CalculaTearea' => App \ Facades \ CalculaTearea :: Klasse,

7. Legg til følgende rute i Web.PHP fil for å få tilgang til metodene til Område klasse ved å bruke CalculateArea fasade.

Rute :: get ('/calarea', funksjon ()
Echo CalculateArea :: sirkel (3).""
";
Echo CalculaTearea :: Square (4).""
";
Echo CalculateArea :: Rektangel (100.200).""
";
Echo CalculateArea :: Triangle (10,5).""
";
);

8. Kjør følgende URL fra nettleseren for å sjekke om ruten fungerer.

http: // localhost/laravelpro/public/calarea

Følgende utgang vises hvis ruten fungerer ordentlig.

9. Du kan også bruke CalculateArea fasade som en innebygd fasade i enhver kontroller. Kjør følgende kommando for å opprette en kåret kontroller Facadecontroller hvor i CalculateArea Fasade vil bli brukt.

$ PHP Artisan Make: Controller Facadecontroller

Endre kontrolleren med følgende kode, der CalculateArea fasade importeres og indeks () Metoden legges inn i kontrolleren. Når indeks () metoden kalles, de fire metodene til Område Klasse vil bli kalt, og de formaterte utgangene vil bli skrevet ut ved å bruke CSS.

namespace -app \ http \ kontrollere;
Bruk Illuminate \ http \ forespørsel;
Bruk CalculateArea;
klasse Facadecontroller utvider kontrolleren

offentlig funksjonsindeks ()

ekko "

"".CalculateArea :: sirkel (5).""

";
ekko "

"".CalculaTearea :: firkant (5).""

";
ekko "

"".CalculateArea :: Rectangle (200.200).""

";
ekko "

"".CalculateArea :: Triangle (15,5).""

";

10. Legg til følgende rute i Web.PHP for å få tilgang til tilgang til indeks () Metode av Facadecontroller.

Rute :: Get ('CalculateArea', 'FacadeController@Index');

11. Kjør følgende URL fra nettleseren for å sjekke om ruten fungerer.

http: // localhost/laravelpro/public/calculateareaa

Følgende utgang vises hvis ruten fungerer ordentlig.

Konklusjon

Funksjonen omtalt i denne artikkelen kan brukes forskjellige steder, som kontrolleren eller ruten til Laravel, ved å bruke fasade. Dette gjør utviklingsoppgaven enklere. Bruken av både innebygde og brukerdefinerte fasader er forklart i denne opplæringen ved å bruke passende eksempler. Bruken av en innebygd fasade, Db, vises ved å bruke en kontroller. Bruken av en tilpasset fasade, CalculateArea, vises ved å bruke en rute og en kontroller. Denne opplæringen forklarte konseptet med å bruke en fasade for å hjelpe Laravel -utviklere til å anvende det i prosjektene sine, basert på deres spesifikke krav.