Brug af indbyggede facader
Du skal oprette en controller for at bruge enhver indbygget facade. Kør følgende kommando for at oprette en controller, der hedder Testkontrol.
Rediger Testkontrol med følgende kode for at vise brugen af den indbyggede facade DB. Denne facade bruges til at udføre alle typer databasefunktioner. I den følgende kode vil alle poster i brugerens tabel blive hentet ved hjælp af DB facade. Outputtet udskrives som en matrix efter udførelse af koden.
Testkontrol.php:
navneområde App \ Http \ Controllers;brug Illuminate \ Http \ Request;
brug DB;
klasse TestController udvider Controller
offentligt funktionsindeks ()
$ brugere = DB :: vælg ('vælg * fra brugere');
ekko print_r ($ brugere);
Tilføj følgende rute i web.php fil. Dette vil kalde indeks() metode Testkontrol til ruten '/prøve.''
Rute :: get ('/ test', '[email protected]');Kør følgende URL fra browseren.
http: // localhost / laravelpro / public / test
Opret en facade
Følg trinene nedenfor for at oprette en brugerdefineret facade i Laravel.
1. Opret en mappe med navnet Areal under appen mappe, og opret en fil med navnet Areal.php under denne mappe med følgende kode. Fire metoder er defineret i klassen til at beregne arealet af en cirkel, firkant, rektangel og trekant. Cirkel() tager radiusværdien som en parameter til at beregne området. Firkant() tager længden af hver side af firkanten som en parameter til beregning af arealet. Rektangel() tager højden og bredden som parametre for at beregne området. Trekant() vil tage basis- og højdeværdierne for trekanten for at beregne arealet.
navneområde App \ Område;klasse Område
offentlig funktion Circle ($ radius)
returner "Områdets område er".(3.14 * $ radius * $ radius);
offentlig funktion Square ($ len)
returner "Arealet af sqaure er".($ len * $ len);
offentlig funktion Rektangel ($ højde, $ bredde)
returner "Arealet af rektangel er".($ højde * $ bredde);
offentlig funktion Triangle ($ base, $ højde)
returner "Området med trekant er".(0.5 * $ base * $ højde);
2. Tilføj følgende ruter for at få adgang til metoderne til Areal klasse. Her, når brugeren skriver 'areal'efter basis-URL, et objekt af Areal klasse defineres, og de fire metoder i denne klasse kaldes med parameterværdier. Men hvis du vil have adgang til klassens metoder direkte som en facade uden at oprette objektet, genereres der en fejl. De næste trin viser dig, hvordan du opretter en facade for direkte at få adgang til metoderne i denne klasse.
brug App \ Area \ Area;Rute :: get ('/ area', function ()
$ område = nyt område ();
echo $ area-> Circle (3)."
";
echo $ area-> Square (4)."
";
echo $ area-> Rektangel (100.200)."
";
echo $ area-> Triangle (10,5)."
";
);
3. Kør følgende URL fra browseren for at kontrollere, om ruten fungerer.
http: // localhost / laravelpro / public / area
Følgende output vises, hvis ruten fungerer korrekt.
4. Opret en mappe med navnet Facader under app mappe, og opret en fil med navnet Beregn område.php med følgende kode. Her, den getFacadeAccessor () metode er defineret indeni Beregn område for at returnere strengen cal_area bruges til at binde Areal klasse.
navneområde App \ Facades;klasse CalculateArea udvider \ Illuminate \ Support \ Facades \ Facade
offentlig statisk funktion getFacadeAccessor ()
returner 'cal_area';
5. Åben web.php og tilføj følgende kode for at binde Areal klasse med Beregn område facadeklasse ved strengen cal_area.
app () -> bind ('cal_area', funktion ()returner nyt \ App \ Area \ Area;
);
6. Åbn app.php fil under config folder. Gå til sektionen alias-array og tilføj følgende linje i slutningen af arrayet. Dette definerer Beregn område som et matrixindeks, og værdien er den facadeklasse, der er defineret under /app/ facade folder. Nu kan du få adgang til metoderne til Areal klasse som en facade uden at skabe noget objekt.
'CalculateArea' => App \ Facades \ CalculateArea :: klasse,7. Tilføj følgende rute i web.php fil for at få adgang til metoderne til Areal klasse ved hjælp af Beregn område facade.
Rute :: get ('/ calarea', funktion ()ekko CalculateArea :: Cirkel (3)."
";
ekko CalculateArea :: Square (4)."
";
ekko CalculateArea :: rektangel (100.200)."
";
ekko CalculateArea :: Triangle (10,5)."
";
);
8. Kør følgende URL fra browseren for at kontrollere, om ruten fungerer.
http: // localhost / laravelpro / public / calarea
Følgende output vises, hvis ruten fungerer korrekt.
9. Du kan også bruge Beregn område facade som en indbygget facade i enhver controller. Kør følgende kommando for at oprette en controller, der hedder FacadeController hvor er Beregn område facade vil blive anvendt.
$ php håndværkerfabrik: controller FacadeControllerÆndr controlleren med følgende kode, hvor Beregn område facade importeres og indeks() metode tilføjes inde i controlleren. Når indeks() metode kaldes, de fire metoder til Areal klasse kaldes, og de formaterede output udskrives ved hjælp af CSS.
navneområde App \ Http \ Controllers;brug Illuminate \ Http \ Request;
brug CalculateArea;
klasse FacadeController udvider Controller
offentligt funktionsindeks ()
ekko "
".CalculateArea :: Cirkel (5)."
";ekko "
".CalculateArea :: Square (5)."
";ekko "
".CalculateArea :: Rektangel (200.200)."
";ekko "
".CalculateArea :: Triangle (15,5)."
";10. Tilføj følgende rute i web.php for at få adgang til adgang til indeks() metode til FacadeController.
Rute :: get ('CalcArea', '[email protected]');11. Kør følgende URL fra browseren for at kontrollere, om ruten fungerer.
http: // localhost / laravelpro / public / CalcArea
Følgende output vises, hvis ruten fungerer korrekt.
Konklusion
Funktionen, der diskuteres i denne artikel, kan bruges forskellige steder som f.eks. Controller eller rute for Laravel ved hjælp af facade. Dette gør udviklingsopgaven lettere. Brugen af både indbyggede og brugerdefinerede facader forklares i denne vejledning ved hjælp af passende eksempler. Brug af en indbygget facade, DB, vises ved hjælp af en controller. Brugen af en brugerdefineret facade, Beregn område, vises ved hjælp af en rute og en controller. Denne tutorial forklarede konceptet med at bruge en facade til at hjælpe Laravel-udviklere med at anvende den i deres projekter baseret på deres specifikke krav.