Jak działają dostawcy usług i kontenery usług przy użyciu laravela?
Opublikowany: 2022-09-16Laravel może być czasami bardzo trudny w obsłudze nawet dla doświadczonych programistów, ponieważ podstawowe funkcje są trudne do zrozumienia. Ale rzeczywiście, tworzenie stron internetowych jest interesujące.
Jedną z funkcjonalności są jej Usługodawcy, o których szczegółowy przegląd przedstawię na tym blogu. Na tym blogu wyjaśnię również, jak działa kontener usług w laravelu.
Są prostsze, niż mogłoby się wydawać. Powiedziawszy to, przejdźmy od razu.
Kim są dostawcy usług w laravel?
Dostawcy usług w aplikacji Laravel służą jako centralny punkt, z którego aplikacja jest ładowana. W rezultacie dostawcy są wykorzystywani do wstrzykiwania podstawowych usług laravela do kontenera usług, a także usług naszej aplikacji, klas i ich zależności do kontenera usług.
Dostawcę dla tego przykładu można znaleźć w config/app.php jako tablicę o nazwie „providers”. Zobacz obrazek poniżej:
Załóżmy, że chcesz użyć dowolnego dostawcy usług innej firmy, a następnie musisz zastosować w konfiguracji tablicy usługodawców.
Możesz zobaczyć, że niektórzy usługodawcy już uruchamiają całą aplikację, na przykład Auth, która jest wymagana do uwierzytelnienia aplikacji.
Jak tworzyć dostawców usług w laravelu?
Aby skorzystać z usługodawcy, musisz go najpierw utworzyć. W rezultacie skonfigurujemy teraz dostawcę usług. Możesz użyć poniższego polecenia, aby utworzyć dowolnego dostawcę usług, którego potrzebujesz.
php artisan make:provider MyServiceProvider
Po uruchomieniu polecenia w Twojej aplikacji zostanie utworzony dostawca usług, z którego możesz korzystać.
Następnie otwórz aplikację i przejdź do folderu dostawców, w którym znajdziesz swojego dostawcę usług.
Tutaj zobaczysz dwie metody, register() i boot().
Metoda register()
Bardzo ważne jest, aby wiedzieć, że metoda register() pozwala nam zdefiniować powiązania z naszym kontenerem usług. Na przykład zobacz kod poniżej:
$this->app jest zmienną globalną w laravelu, która może uzyskać dostęp do klasy singletona poprzez aplikację.
Singleton to cecha. Gdy zastosujesz tę cechę, informujesz aplikację, że jakakolwiek klasa jest wysyłana jako parametr w aplikacji, powinna mieć tylko jeden duplikat (instancję) w całej aplikacji. Oznacza to, że MyClass zostanie rozwiązana raz i będzie miała tylko jedną instancję, do której można uzyskać dostęp za pomocą zmiennej my_class.
Metoda boot()
Metoda boot() umożliwia dostęp do wszystkich usług, które zostały wcześniej zarejestrowane przy użyciu metody register. W ten sposób możesz włączyć całą usługę do swojej aplikacji, korzystając z tej metody.
Jak zarejestrować usługodawcę?
Ponieważ masz już zbudowanego dostawcę usług, musisz zarejestrować go w pliku konfiguracyjnym, aby zakończyć proces. Musisz zarejestrować się tutaj w sposób przedstawiony na poniższym obrazku:

Wszyscy usługodawcy ładują się jako pierwsi za każdym razem, gdy aplikacja jest uruchamiana. Dostawcy usług są głównym centralnym miejscem dla aplikacji Laravel i zawsze są gotowi pomóc w uruchomieniu kompletnej aplikacji, jak omówiono wcześniej na tym blogu.
Czym są kontenery serwisowe w laravelu?
Kontener usług to potężny mechanizm, który pozwala nam przechowywać wszystkie powiązania, które są niezbędne do uruchomienia aplikacji Laravel na jednym serwerze.
Wszystko w aplikacji można powiązać za pomocą kontenera usług.
Jak używać kontenera serwisowego w laravelu?
Rozważmy następujący scenariusz: mamy klasę o nazwie MathService, która jest odpowiedzialna za wykonywanie pewnych podstawowych operacji, takich jak dodawanie, mnożenie i tak dalej. Kod dla tej klasy znajduje się poniżej.
Jak widać powyżej, istnieją dwie metody obliczania sumy tablic liczb za pomocą funkcji sumy tablicy i mnożenia wszystkich liczb dostarczonych jako tablica za pomocą funkcji iloczynu tablicy.
Funkcja sumy tablicowej oblicza sumę liczb tablicowych za pomocą funkcji sumy tablicowej, podczas gdy funkcja iloczynu tablicowego mnoży wszystkie liczby podane jako tablica.
Aby skorzystać z usługodawcy, musimy najpierw powiązać usługę z kontenerem usług.
Jednak robiąc to, instruujemy Laravel, aby trzymał kontener MathService w kontenerze o nazwie MathService i zwracał go za każdym razem, gdy potrzebujemy instancji klasy. Jest to jednorazowe powiązanie klasy i może być użyte do uzyskania dowolnej liczby instancji z naszego programu.
Jak wspomniano wcześniej, kontenery usług i dostawcy usług są kluczowymi składnikami każdej aplikacji Laravel. Jak wspomniano wcześniej, możemy zaprojektować własnych, unikalnych dostawców usług lub możemy włączyć do naszych aplikacji zewnętrznych dostawców usług.
Na przykład, jeśli chcesz korzystać z socialite w Laravel, możesz po prostu skopiować i wkleić go do pliku dostawcy usług aplikacji i używać go w dowolnym miejscu w aplikacji.
Podsumowując
Podczas konfigurowania aplikacji korzysta się z usługodawców. Oprócz powiązań kontenera usług w tej sekcji pliku konfiguracyjnego są również rejestrowane inne kluczowe elementy, takie jak trasy, oprogramowanie pośredniczące i detektory zdarzeń.
Dostawcy usług są wykonywani przed przetworzeniem samego żądania, zapewniając, że wszystko, czego potrzebujesz, jest na miejscu i skonfigurowane przed przetworzeniem żądania przez system. Realizacja niektórych usługodawców odbywa się regularnie, podczas gdy inni usługodawcy są wykonywani tylko wtedy, gdy jest to wymagane („dostawcy opóźnieni”).
Gdy używasz kontenera usług, możesz go użyć do wstrzykiwania zależności (na przykład wstrzykiwania parametrów w klasach kontrolera), a także klas powiązań i rozpoznawania (takich jak klasa, która ma utworzyć wystąpienie dla danego kontraktu).
Tworzenie stron internetowych może być trudnym procesem. Właśnie dlatego webdew posiada zespół wykwalifikowanych programistów internetowych, którzy pomagają tworzyć strony internetowe i aplikacje oraz ułatwiają pracę.
Potrzebujesz pomocy w projektowaniu i tworzeniu stron internetowych? Skontaktuj się z nami!
Redaktor: Amrutha