Hlavní navigace

Názor ke článku PHP Jet - Dependency Injection, továrny a tak dále od BoneFlute - Ano, autor php-jet používá "service locator" (to kdyby...

  • 14. 2. 2023 14:37

    BoneFlute

    Ano, autor php-jet používá "service locator" (to kdyby si chtěl přečíst kritiku tohoto vzoru).

    Ne, článek od Davida nepopisuje ani nepoužívá vzor repository. Návrhový vzor repository řeší jak ukládat, případně načítat entity. Davidův článek popisuje jak poskládat instanci a jak jí dodat závislosti.

    Ne, DI neporušuje SRP, naopak. Je důkladnou snahou o jeho dodržení. DI zajistí, že třída má jen svou zodpovědnost, a všechny požadované detaily nesouvisející s jeho prací jsou delegovány do závislostí. SL toto nesplňuje, protože třída ještě navíc musí řešit získání těch závislostí.

    S továrnami na řešení on-demand vytváření závislostí v DIC jsem se setkal i v jiných jazycích (C#, Rust, Java). Nette je v tomto zajímavé spíš tím, že si umí ty továrny vymejšlet sám.

    Každopádně pokud máte nějaký neotřelý způsob, jak dodat závislosti objektu, rád se nechám poučit.