Dependency injection je programatorska technika, ktera tridam (ci metodam nebo
funkcim) odebira potrebu ziskavat prostredky, ktere potrebuji ke svemu behu.
Naopak si o ne primo reknou ve svych konstuktorech (pres povinne paramtery) a
vy jim je musite predat uz pri jejich vytvoreni/zavolani.
Prehlednost kodu
Pouziti Dependency injection zvysuje prehlednost kodu. Nemusite procitat cely
kod, abyste videli, jake prostredky musi byt k dispozici.
class Foo {
protected $resource;
public function __construct() {
//telo konstruktoru
//nacteni potrebnych prostredku z global
$this->resource = $globalResource
}
}
--
Staci se mrknout, jake paramtery funkce prebiraji a hned mate jasno.
class Foo {
protected $resource;
public function __construct($resource) {
$this->resource = $resource
//telo funkce
}
}
--
<h2>Prenositelnost</h2>
Kdyz budete chtit pouzit Vasi tridu i v jinem projektu, nemusi Vas zajimat pod jakym nazvem je ona potrebna promena ulozena (je to <em>$db</em> nebo <em>$database</em>?). Prostredky dostanete jako parametry a pak uz si s nimi delejte co chcete :)