Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Lekce 6 - Předávání závislostí pomocí Dependency Injection

V minulé lekci, Špatné způsoby předávání závislostí - Singleton a SL, jsme dokončili průlet špatnými způsoby předávání závislostí ve vícevrstvých aplikacích. Celkově to byla jakákoli statika včetně Singletonu, ale také i předávání kontejneru se závislostmi, známé jako vzor service locator, případně různé variace těchto způsobů.

Dnes si na příkladu s evidencí automobilů ukážeme, jak správně předávat závislosti.

Pracné způsoby

Jediným nám známým správným způsobem je zatím závislosti předávat ručně, jednu po jedné. To je také způsob, který jsme si ukázali na samém začátku kurzu. Vytvořili jsme si instanci databáze již v index.php a tu postupně předávali do kontroleru a z něj do modelu, kde byla potřeba. Ačkoli je tento způsob návrhově korektní, dokážete si jistě představit, kolik práce by dalo takto předávat několik závislostí i jen ve středně velké aplikaci. A jelikož jsou kontrolery tvořené automaticky routerem, museli bychom navíc poznat jaké závislosti jakému kontroleru předat. Minule jsem slíbil, že váš již nebudu trápit se špatnými řešeními a otázkami. Dnešní lekce naopak přinese odpovědi na všechno. Vážně :)

Co bylo špatně?

Ve všech představených řešeních jsme se snažili zohýbat kód tak, abychom nemuseli závislosti předávat. Toho ovšem NELZE dosáhnout bez negativních dopadů. Všechny podobné pokusy budou vždy končit neúspěchem. Pokud nepředáme každé třídě jen to, co potřebuje, vždy bude mít k dispozici více než je nutné a řešení bude:

  • nebezpečné
  • globální
  • nezapouzdřené
  • návrhově špatně

Závislosti musíme předávat, přesně pro každou třídu zvlášť.

Automatizace

Dobrá zpráva je, že se předávání závislostí dá zautomatizovat. To znamená, že každá třída dostane jen to co potřebuje a tyto závislosti jí budou předány automaticky. K tomu potřebujeme 3 věci:


 

...konec náhledu článku...
Pokračuj dál

Znalosti v hodnotě stovek tisíc získáš za pár korun

Došel jsi až sem a to je super! Věříme, že ti první lekce ukázaly něco nového a užitečného.
Chceš v kurzu pokračovat? Přejdi do prémiové sekce.

Koupit tento kurz

Koupit všechny aktuálně dostupné lekce s funkcí odevzdávání úloh za pouhých 140 Kč
Aktuální stav konta 0 Kč
Koupí tohoto balíčku získáš přístup ke všem 7 článkům (7 lekcí) tohoto kurzu.

Obsah článku spadá pod licenci Premium III, koupí článku souhlasíš se smluvními podmínkami.

Co od nás v dalších lekcích dostaneš?
  • Neomezený a trvalý přístup k jednotlivým lekcím.
  • Kvalitní znalosti v oblasti IT.
  • Dovednosti, které ti pomohou získat vysněnou a dobře placenou práci.

Popis článku

Požadovaný článek má následující obsah:

V tutoriálu vysvětlíme proč jsme předtím předávali závislosti špatně, co je Inversion of Control a jak funguje návrhový vzor Dependency Injection v praxi.

Kredity získáš, když podpoříš naši síť. To můžeš udělat buď zasláním symbolické částky na podporu provozu nebo přidáním obsahu na síť.

Článek pro vás napsal David Hartinger
Avatar
David je zakladatelem ITnetwork a programování se profesionálně věnuje 15 let. Má rád Nirvanu, nemovitosti a svobodu podnikání.
Unicorn university David se informační technologie naučil na Unicorn University - prestižní soukromé vysoké škole IT a ekonomie.
Aktivity