Furnizorii de servicii (furnizori de servicii, literalmente - „prestatorii de servicii“) sunt esențiale pentru arhitectura Laravel. Ele sunt destinate pentru încărcarea aplicațiilor inițiale (bootstraping). Cererea dumneavoastră, precum și serviciile cadrului sunt descărcate prin intermediul furnizorilor de servicii.
Ce face exact termenul de „încărcare inițială“ sau «bootsraping»? Aceasta este, în principal înregistrarea anumitor lucruri - cum ar fi legături în IOC-container (fațade, etc.), ascultătorii eveniment (ascultătorii eveniment), filtre de rute (filtre de trecere) și se de rute (trasee). Furnizorii de servicii - un loc central pentru a configura aplicația.
Dacă deschideți fișierul de configurare / app.php. veți vedea o serie de furnizori. Acesta enumeră toate categoriile de furnizori de servicii care sunt încărcate atunci când porniți aplicația (desigur, cu excepția celor care sunt „în așteptare» (amânat), care este încărcat la cererea unui alt furnizor de servicii).
Puteți și ar trebui să creeze furnizorii de servicii proprii pentru a descărca și configura diferite părți ale aplicației.
Utilizarea furnizorilor de
Furnizorii de servicii trebuie să se extindă (extinde) clasa Illuminate \ Support \ ServiceProvider. Aceasta este o clasă abstractă, care impune ca în clasa derivată a fost registru) metoda (. Metoda registru (), puteți înregistra numai clasele lor (legături) în containerul de serviciu. Evenimente Ascultătorii (ascultătorii eveniment), Calea de rute și filtre nu pot detecta.
Cu Artisan, puteți crea cu ușurință un nou furnizor folosind comanda make: furnizor de:
registru metoda ()
Acesta este modul în care se pot uita doar un furnizor de servicii:
Registrul (), inregistram (bind) ca un Singleton (de exemplu, clasa nu va fi reinițializat după un apel din container) într-o lucrare de clasa container de servicii cu baza de date Riak bazei de date. Dacă aveți acest cod arata ca neinteligibil, nu vă faceți griji, activitatea serviciului containerului va fi considerat mai târziu.
Spații de nume App \ furnizori. care este clasa furnizorului de servicii - spațiu de stocare implicit de credit pentru furnizorii de servicii de dvs. Laravel-aplicație, dar puteți aranja furnizorii de servicii oriunde în interiorul dvs. PSR-4 dosar (dacă nu ați modificat aplicația dosar composer.json. ).
boot) Metoda (
Atunci când pentru a apela un registru metoda () a furnizorului de servicii de aplicații, metoda se numește boot (furnizorii de servicii). Există deja posibil să se utilizeze funcționalitatea completă a claselor existente ale cadrului și cererea dumneavoastră - înregistrați ascultătorii eveniment pentru a conecta ruta, etc.
Vă rugăm să rețineți că rezervorul de serviciu, cauzând metoda de pornire (). el va pune în aplicare acele dependențe pe care le specificați, în special, dispecerul.
furnizorii de înregistrare
Toți furnizorii de servicii sunt înregistrate în config / fișier app.php prin adăugarea o serie de furnizori. Toți furnizorii de servicii sunt acolo cadru.
Pentru a înregistra furnizorul de servicii, adăugați numele clasei în matrice:
furnizorii de amânate
În cazul în care furnizorul de servicii Internet înregistrează numai o (bind) clase în container de serviciu. atunci puteți pune un apel în registru său metoda (), până în momentul în care aceste clase vor fi solicitate din container de serviciu. Acest lucru nu va trage sistemul de fișiere fiecare solicitare într-o încercare de a descărca un fișier din clasele necesare de pe disc.
Pentru a face furnizorul de servicii este întârziată, setați defere true și să definească oferă metoda (). cadru pentru a ști care clasele Bindu (autentificat container de serviciu, „legat“) la furnizorul dumneavoastră.
Laravel în procesul de pornire colectează date cu privire la furnizorii de servicii aflate în așteptare și clase care acestea sunt înregistrate și în cazul în care, în timpul aplicării va avea nevoie de o clasă Riak \ Contracte \ Conexiune. acesta va provoca registru () metoda de RiakServiceProvider furnizorului de servicii.