Fasady Laravela przedstawiają prosty interfejs najbardziej przydatnym klasom w bazie kodowej Laravel. Możesz uzyskać informacje o bieżącym żądaniu i danych wejściowych użytkownika, sesji, buforach i wielu innych.
Ale jeśli wolisz wstrzykiwać swoje zależności lub jeśli chcesz skorzystać z usługi, która nie ma fasady, musisz znaleźć sposób na wprowadzenie instancji tych klas do kontrolera.
Wszystkie metody kontrolera (w tym konstruktory) są rozwiązywane z kontenera Laravel, co oznacza wszystko, co tytujesz, że pojemnik wie, jak rozwiązać, zostanie automatycznie wstrzyknięte.
Jako fajny przykład, co, jeśli wolisz mieć instancję obiektu żądania zamiast korzystania z fasad? Po prostu typehint iLuminate \ http \ żądanie w parametrach metody:]
sklep funkcji publicznych (\ ILUMINE \ http \ żądanie $ żądanie)Zdefiniowałeś więc parametr, który należy przekazać do metody Store (). A ponieważ go wpisałeś, a ponieważ Laravel wie, jak rozwiązać tę nazwę klasy, będziesz przygotować obiekt żądania do użycia w swojej metodzie bez pracy z Twojej strony. Bez wyraźnego wiązania, nic więcej - jest po prostu jako zmienna żądania $.
Przy okazji, tak naprawdę ja i wielu innych programistów Laravela wolę uzyskać dane wejściowe użytkownika: wstrzyknąć instancję żądania i odczytać wejście użytkownika stamtąd, zamiast polegać na fasadzie wejściowej.