Quick Start Symfony DI (Sõltuvus Injection) Õpik
Mis on Sõltuvus Injection (DI)?
Sõltuvus süst on meetod, mis võimaldab nõrgalt sidestatud objektide tarkvara rakendus. Üldiselt kui objekt nõuab juurdepääsu funktsionaalsust teine oleks instantiated sisemiselt viib tihedalt sidestatud süsteemid. Rakendades sõltuvust süsti me Süstida vajalik objektide kasutamiseks valmis (mõnikord nimetatakse ka inversioon kontroll - ROK). Võtke järgmine näide:
<? Php klassi DecisionMaker { avaliku funktsiooni makeDecision (massiiv $ parameetrid) { / / Vajad andmebaasi adapter $ Dp = new DecisionParameters (); $ ParameterScore = $ dp-> getScore ($ parameetrid); / * ... Mõned rohkem otsuseid loogika ... * / return ($ parameterScore> 50); } }
See tükk kood on väidetavalt tihedalt sidestatud DecisionParameters objekti. Ümberkirjutamine eespool nõrgalt sidestatud mood me tahaks olla midagi sellist ....
<? Php klassi DecisionMaker { Privaatsõnumite $ _dp; avaliku funktsiooni __construct ($ dp) { $ This-> _dp = $ dp; } avaliku funktsiooni makeDecision (massiiv $ parameetrid) { $ ParameterScore = $ this-> _dp-> getScore ($ parameetrid); / * ... Mõned rohkem otsuseid loogika ... * / return ($ parameterScore> 50); } }
Kuigi võitmas kasu nõrgalt sidestatud kood lisame keerukust selline, et iga kord, kui objekt on instantiated meil on ka instantiate oma sõltuvuste ja läbivad need liiga. Näiteks selline:
$ Valik = new DecisionMaker (); echo $ valik-> makeDecision (array ('vaeva' => 'madal', 'Tagasi' => 'kõrge'));
nüüd on:
$ Dp = new DecisionParameters (); $ Valik = new DecisionMaker ($ dp); echo $ valik-> makeDecision (array ('vaeva' => 'madal', 'Tagasi' => 'kõrge'));
See olukord muutub valusam kui mitu sõltuvused klassi tõus, mis siis, kui sõltuvused ise on sõltuvused? See võib üsna kiiresti muutuda objekti haldamine õudusunenägu! Enter sõltuvust süsti mahutid (või raamistike) ...
Jätka lugemist "Quick Start Symfony DI (Sõltuvus Injection) Õpik" »
















































