Fasada Laravel

Fasada Laravel
Kontener serwisowy Laravel pozwala użytkownikowi inicjować klasy według aliasu. Sposób dostępu do kontenera serwisowego Laravel nazywa się fasadą. Laravel zawiera wiele wbudowanych fasad, aby uzyskać dostęp do różnych funkcji Laravel. Fasada jest używana w Laravel, aby aplikacja była bardziej testowana, elastyczna i prostsza. Wszystkie wbudowane fasady są zdefiniowane w przestrzeni nazw ILUMINE \ Wsparcie \ fasady. Ten samouczek pokazuje, jak tworzyć i używać wbudowanych fasad Laravel.

Wykorzystanie wbudowanych fasad

Musisz utworzyć kontroler, aby użyć dowolnej wbudowanej fasad. Uruchom następujące polecenie, aby utworzyć kontroler nazwany TestController.

Zmodyfikuj TestController z następującym kodem, aby pokazać użycie wbudowanej fasad Db. Ta fasada służy do wykonywania wszystkich rodzajów operacji bazy danych. W poniższym kodzie wszystkie rekordy tabeli użytkownika zostaną pobrane za pomocą Db fasada. Wyjście zostanie wydrukowane jako tablica po wykonaniu kodu.

TestController.PHP:

przestrzeń nazw app \ http \ controllers;
Użyj Illuminate \ http \ żądanie;
Użyj db;
Klasa TestController rozszerza kontroler

indeks funkcji publicznej ()

$ Users = db :: „Wybierz * od użytkowników”);
echo print_r ($ Users);

Dodaj następującą trasę w sieć.php plik. To zadzwoni indeks() metoda TestController na trasę '/test.'

Trasa :: „/test”, „testController@index”);

Uruchom następujący adres URL z przeglądarki.

http: // localhost/laravelpro/public/test

Utwórz fasadę

Postępuj zgodnie z poniższymi czynami, aby utworzyć niestandardową fasadę w Laravel.

1. Utwórz folder o nazwie Obszar pod Aplikacja folder i utwórz plik o nazwie Obszar.php w tym folderze z następującym kodem. W klasie zdefiniowane są cztery metody w celu obliczenia obszaru okręgu, kwadratu, prostokąta i trójkąta. Koło() przyjmie wartość promienia jako parametr do obliczenia obszaru. Kwadrat() przyjmie długość każdej strony kwadratu jako parametr do obliczenia obszaru. Prostokąt() przyjmie wysokość i szerokość jako parametry do obliczenia obszaru. Trójkąt() przyjmie wartości podstawy i wysokości trójkąta, aby obliczyć obszar.

przestrzeń nazw App \ obszar;
Obszar klas

Publiczne okrąg funkcji ($ promień)

Zwróć „obszar koła to”.(3.14*$ promień*$ promień);

Funkcja publiczna ($ len)

Zwróć „Obszar sqaure to”.($ len*$ len);

Prostokąt funkcji publicznej ($ wysokość, $ szerokość)

Zwróć „obszar prostokąta to”.($ wysokość*$ szerokość);

Publiczny trójkąt funkcji ($ baza, $ wysokość)

zwrócić „obszar trójkąta”.(0.5*$ baza*$ high);

2. Dodaj następujące trasy, aby uzyskać dostęp do metod Obszar klasa. Tutaj, gdy użytkownicy są typemobszar„Po podstawowym adresie URL obiekt Obszar klasa zostanie zdefiniowana, a cztery metody tej klasy są wywoływane z wartościami parametrów. Ale jeśli chcesz uzyskać dostęp do metod klasy bezpośrednio jak fasada bez tworzenia obiektu, zostanie wygenerowany błąd. Kolejne kroki pokazują, jak utworzyć fasadę, aby bezpośrednio uzyskać dostęp do metod tej klasy.

Użyj App \ Area \ Area;
Trasa :: get ('/obszar', funkcja ()
$ area = nowy obszar ();
Echo $ obszar-> Circle (3)."
";
Echo $ obszar-> kwadrat (4)."
";
Echo $ obszar-> prostokąt (100 200)."
";
Echo $ obszar-> trójkąt (10,5)."
";
);

3. Uruchom następujący adres URL z przeglądarki, aby sprawdzić, czy trasa działa.

http: // localhost/laravelpro/public/obszar

Pojawi się następujące dane wyjściowe, jeśli trasa działa poprawnie.

4. Utwórz folder o nazwie Fasady pod App folder i utwórz plik o nazwie Calculatearea.php z następującym kodem. Tutaj getFacadeAccessor () Metoda jest zdefiniowana w środku Calculatearea Aby zwrócić ciąg cal_area używane do wiązania Obszar klasa.

APP APP APP APP \;
klasa obliczona rozszerza \ iluminate \ wsparcie \ fasade \ fasade

Publiczna funkcja statyczna getFacadeAccessor ()

return „cal_area”;

5. otwarty sieć.php i dodaj następujący kod, aby powiązać Obszar klasa z Calculatearea Klasa fasady według łańcucha cal_area.

app ()-> bind ('cal_area', funkcja ()
zwróć nowy \ App \ Area \ Area;
);

6. Otworzyć App.php plik pod konfigurator teczka. Przejdź do sekcji tablicy aliasów i dodaj następujący wiersz na końcu tablicy. To określa Calculatearea jako wskaźnik tablicy, a wartością jest klasa fasady zdefiniowana w ramach /App/fasada teczka. Teraz możesz uzyskać dostęp do metod Obszar klasa jako fasada bez tworzenia żadnego obiektu.

„Calculatearea” => app \ faceades \ calculatearea :: klasa,

7. Dodaj następującą trasę w sieć.php plik dostępu do metod Obszar klasa za pomocą Calculatearea fasada.

Trasa :: get ('/calarea', funkcja ()
Echo Calculatearea :: Circle (3)."
";
Echo Calculatearea :: Square (4)."
";
Echo calculatearea :: prostokąt (100 200)."
";
Echo Calculatearea :: Triangle (10,5)."
";
);

8. Uruchom następujący adres URL z przeglądarki, aby sprawdzić, czy trasa działa.

http: // localhost/laravelpro/public/calarea

Pojawi się następujące dane wyjściowe, jeśli trasa działa poprawnie.

9. Możesz także użyć Calculatearea fasada jak wbudowana fasada w dowolnym kontrolerze. Uruchom następujące polecenie, aby utworzyć kontroler nazwany Feadecontroller gdzie Calculatearea Zostanie zastosowana fasada.

$ PHP Artisan Make: Controller Eacadecontroller

Zmodyfikuj kontroler następującym kodem, w którym Calculatearea fasada jest importowana i indeks() Metoda jest dodawana do kontrolera. Kiedy indeks() Metoda nazywana jest cztery metody Obszar Zostanie wywołane klasę, a sformatowane wyjścia zostaną wydrukowane za pomocą CSS.

przestrzeń nazw app \ http \ controllers;
Użyj Illuminate \ http \ żądanie;
Użyj calculatearea;
Klasy Eacadecontroller rozszerza kontroler

indeks funkcji publicznej ()

Echo "

".Calculatearea :: Circle (5)."

";
Echo "

".Calculatearea :: Square (5)."

";
Echo "

".Calculatearea :: prostokąt (200,200)."

";
Echo "

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

";

10. Dodaj następującą trasę sieć.php Aby uzyskać dostęp do dostępu do indeks() metoda Feadecontroller.

Trasa :: „calculatearea”, „eacadecontroller@index”);

11. Uruchom następujący adres URL z przeglądarki, aby sprawdzić, czy trasa działa.

http: // localhost/laravelpro/public/calculatearea

Pojawi się następujące dane wyjściowe, jeśli trasa działa poprawnie.

Wniosek

Funkcję omówioną w tym artykule można użyć w różnych miejscach, takich jak kontroler lub trasa Laravel, za pomocą fasady. To ułatwia zadanie rozwoju. Zastosowania zarówno wbudowanych, jak i zdefiniowanych przez użytkownika fasady są wyjaśnione w tym samouczku za pomocą odpowiednich przykładów. Użycie wbudowanej fasad, Db, jest pokazywany za pomocą kontrolera. Użycie niestandardowej fasad, Calculatearea, jest pokazywany za pomocą trasy i kontrolera. Ten samouczek wyjaśnił koncepcję korzystania z fasady, aby pomóc programistom Laravel w zastosowaniu go w ich projektach, w oparciu o ich konkretne wymagania.