Användning av inbyggda fasader
Du måste skapa en styrenhet för att använda vilken inbyggd fasad som helst. Kör följande kommando för att skapa en controller som heter Testkontroll.
Ändra Testkontroll med följande kod för att visa användningen av den inbyggda fasaden DB. Denna fasad används för att göra alla typer av databasåtgärder. I följande kod kommer alla poster i användarens tabell att hämtas med hjälp av DB Fasad. Utskriften skrivs ut som en matris efter att koden har körts.
Testkontroll.php:
namnrymd App \ Http \ Controllers;använd Illuminate \ Http \ Request;
använd DB;
klass TestController utökar Controller
offentligt funktionsindex ()
$ användare = DB :: välj ('välj * från användare');
echo print_r ($ användare);
Lägg till följande rutt i webb.php fil. Detta kommer att kalla index() metod Testkontroll för rutten '/testa.''
Rutt :: get ('/ test', '[email protected]');Kör följande URL från webbläsaren.
http: // localhost / laravelpro / public / test
Skapa en fasad
Följ stegen nedan för att skapa en anpassad fasad i Laravel.
1. Skapa en mapp med namnet Område under appen mapp och skapa en fil med namnet Område.php under den här mappen med följande kod. Fyra metoder definieras i klassen för att beräkna ytan för en cirkel, kvadrat, rektangel och triangel. Cirkel() tar radievärdet som en parameter för att beräkna området. Fyrkant() tar längden på varje sida av rutan som en parameter för att beräkna ytan. Rektangel() tar höjd och bredd som parametrar för att beräkna området. Triangel() tar bas- och höjdvärdena för triangeln för att beräkna ytan.
namnområde App \ Area;klass Område
public function Circle ($ radie)
returnera "Cirkelns område är".(3.14 * $ radie * $ radie);
offentlig funktion Square ($ len)
returnera "Arean av sqaure är".($ len * $ len);
offentlig funktion Rektangel ($ höjd, $ bredd)
return "Rektangelns område är".($ höjd * $ bredd);
offentlig funktion triangel ($ bas, $ höjd)
returnera "Området med triangeln är".(0.5 * $ bas * $ höjd);
2. Lägg till följande rutter för att komma åt metoderna för Område klass. Här, när användaren skriver 'område"efter bas-URL: en, ett objekt av Område klass definieras och de fyra metoderna i denna klass kallas med parametervärden. Men om du vill komma åt klassens metoder direkt som en fasad utan att skapa objektet, genereras ett fel. Nästa steg visar hur du skapar en fasad för att komma åt metoderna i denna klass direkt.
använd App \ Area \ Area;Rutt :: get ('/ area', function ()
$ area = new Area ();
echo $ area-> Cirkel (3)."
";
echo $ area-> Square (4)."
";
echo $ area-> Rektangel (100 200)."
";
echo $ area-> Triangle (10,5)."
";
);
3. Kör följande URL från webbläsaren för att kontrollera om rutten fungerar.
http: // localhost / laravelpro / public / area
Följande utdata visas om rutten fungerar korrekt.
4. Skapa en mapp med namnet Fasader under app mapp och skapa en fil med namnet Beräkna område.php med följande kod. Här, den getFacadeAccessor () metod definieras inuti Beräkna område för att returnera strängen cal_area används för att binda Område klass.
namnrymd App \ Fasader;klass CalculateArea utökar \ Illuminate \ Support \ Facades \ Facade
offentlig statisk funktion getFacadeAccessor ()
returnera 'cal_area';
5. Öppna webb.php och lägg till följande kod för att binda Område klass med Beräkna område fasadklass vid strängen cal_area.
app () -> bind ('cal_area', funktion ()returnera nytt \ App \ Area \ Area;
);
6. Öppna app.php fil under konfigurera mapp. Gå till avsnittet alias array och lägg till följande rad i slutet av arrayen. Detta definierar Beräkna område som ett matrisindex och värdet är fasadklassen som definieras under /app/Fasad mapp. Nu kan du komma åt metoderna för Område klass som en fasad utan att skapa något objekt.
'CalculateArea' => App \ Facades \ CalculateArea :: class,7. Lägg till följande rutt i webb.php fil för att komma åt metoderna för Område klass med hjälp av Beräkna område Fasad.
Rutt :: get ('/ calarea', function ()eko CalculateArea :: Cirkel (3)."
";
echo CalculateArea :: Square (4)."
";
eko CalculateArea :: Rektangel (100.200)."
";
eko CalculateArea :: Triangle (10,5)."
";
);
8. Kör följande URL från webbläsaren för att kontrollera om rutten fungerar.
http: // localhost / laravelpro / public / calarea
Följande utdata visas om rutten fungerar korrekt.
9. Du kan också använda Beräkna område fasad som en inbyggd fasad i vilken styrenhet som helst. Kör följande kommando för att skapa en controller som heter FacadeController där den Beräkna område fasaden kommer att tillämpas.
$ php artisan make: controller FacadeControllerÄndra styrenheten med följande kod, där Beräkna område fasaden importeras och index() metod läggs in i styrenheten. När index() metod kallas, de fyra metoderna för Område klass kommer att anropas och de formaterade utmatningarna skrivs ut med CSS.
namnrymd App \ Http \ Controllers;använd Illuminate \ Http \ Request;
använd CalculateArea;
klass FacadeController utökar Controller
offentligt funktionsindex ()
eko "
".CalculateArea :: Cirkel (5)."
";eko "
".CalculateArea :: Square (5)."
";eko "
".CalculateArea :: Rektangel (200.200)."
";eko "
".CalculateArea :: Triangle (15,5)."
";10. Lägg till följande rutt i webb.php för att få tillgång till åtkomst till index() metod av FacadeController.
Rutt :: get ('beräknaArea', '[email protected]');11. Kör följande URL från webbläsaren för att kontrollera om rutten fungerar.
http: // localhost / laravelpro / public / calcArea
Följande utdata visas om rutten fungerar korrekt.
Slutsats
Funktionen som diskuteras i den här artikeln kan användas på olika platser, som kontrollen eller Laravels rutt, genom att använda fasad. Detta underlättar utvecklingsuppgiften. Användningarna av både inbyggda och användardefinierade fasader förklaras i denna handledning med hjälp av lämpliga exempel. Användningen av en inbyggd fasad, DB, visas med hjälp av en styrenhet. Användningen av en anpassad fasad, Beräkna område, visas med hjälp av en rutt och en styrenhet. Denna handledning förklarade konceptet att använda en fasad för att hjälpa Laravel-utvecklare att tillämpa den i sina projekt, baserat på deras specifika krav.