Quick Start Symfony DI (Odvisnost Injection) Tutorial
Kaj je Dependency Injection (DI)?
Odvisnost injiciranje je tehnika, ki omogoča ohlapno povezanih predmetov v programske aplikacije. Na splošno, če predmet zahteva dostop do funkcionalnosti drugega, da bi ustvaril primer notranje vodi v tesno povezani sistemi. Z izvajanjem odvisnost injiciranje smo injicirajte potrebne predmete pripravljen za uporabo (včasih tudi iz inverzijo nadzora - IOC). Vzemite naslednji primer:
<? Php Razred DecisionMaker { javno funkcijo makeDecision (array $ parametri) { / / Potreba baze adapter $ Dp = new DecisionParameters (); ParameterScore $ = $ DP-> getScore ($ parametri); / * ... Še nekaj odločitev logiko ... * / return ($ parameterScore> 50); } }
Ta del kode je dejal, da je tesno povezan z objekta DecisionParameters. Preoblikovanje zgoraj v ohlapno povezanih modni bi imeli kaj podobnega ....
<? Php Razred DecisionMaker { zasebno $ _dp; javno funkcijo __construct ($ dp) { $ This-> _dp = $ dp; } javno funkcijo makeDecision (array $ parametri) { ParameterScore $ = $ this-> _dp-> getScore ($ parametri); / * ... Še nekaj odločitev logiko ... * / return ($ parameterScore> 50); } }
Medtem ko pridobivajo prednosti ohlapno povezanih kode smo dodali kompleksnost tako, da vsakič, ko je objekt ustvaril primer moramo tudi instantiate svoje odvisnosti in mimo teh preveč. Na primer, to:
$ Izbira = new DecisionMaker (); echo $ izbira-> makeDecision (array ("napor" => "nizko", "vrnitev" => "visoko"));
sedaj postane:
$ Dp = new DecisionParameters (); $ Izbira = new DecisionMaker ($ dp); echo $ izbira-> makeDecision (array ("napor" => "nizko", "vrnitev" => "visoko"));
Ta položaj postane bolj boleče, kot je število odvisnosti za razred je povečala, in kaj če odvisnosti sami odvisnosti? To lahko zelo hitro postanejo predmet uprave nočna mora! Vpišite posodah injekcijo odvisnost (ali okviri) ...
Nadaljuj branje "Quick Symfony Začni DI (Odvisnost Injection) Tutorial '»
















































