Mabilis na Pagsisimula Symfony Di (dependency inyeksyon) Tutorial
Ano ang dependency iniksyon (Di)?
Dependency iniksyon ay isang pamamaraan na nagbibigay-daan para sa maluwag na kaisa bagay sa loob ng isang application software. Pangkalahatan na kung ang isang bagay ay nangangailangan ng access sa functionality ng ibang ito instantiated sa nangungunang loob sa mga mahigpit kaisa system. Sa pamamagitan ng pagpapatupad ng iniksyon ng dependency namin paturukan ng mga kinakailangang bagay handa para sa paggamit (minsan din-refer sa pagbabaligtad ng control - IOC). Dalhin ang mga sumusunod na halimbawa:
<? Php klase DecisionMaker { pampublikong na pagpapaandar makeDecision (array $ parameter) { / / Kailangan ng database adaptor $ Dp = bagong DecisionParameters ang (); $ ParameterScore = $ dp-> getScore ($ parameter); / * ... Ilang higit na lohika desisyon ... * / return ($ parameterScore> 50); } }
Ang piraso ng code na ito ay sinabi na mahigpit kaisa sa bagay DecisionParameters. Muling pagsusulat ng sa itaas sa isang maluwag kaisa fashion gusto naming magkaroon ng isang bagay tulad ng ....
<? Php klase DecisionMaker { pribadong $ _dp; pampublikong function na __ tayuan ($ dp) { $ Ito-> _dp = $ dp; } pampublikong na pagpapaandar makeDecision (array $ parameter) { $ ParameterScore = $ ito-> _dp-> getScore ($ parameter); / * ... Ilang higit na lohika desisyon ... * / return ($ parameterScore> 50); } }
Habang ang pagkakaroon ng mga benepisyo ng maluwag kaisa code namin ay pagdaragdag sa kumplikado tulad na ang oras sa bawat bagay ng isang instantiated din namin upang magbigay ng halimbawa nito mga dependencies at pumasa ito sa masyadong. Halimbawa, ito:
$ Pagpipilian = bagong DecisionMaker (); alingawngaw $ pinili-> makeDecision (array ('pagsusumikap' => 'mababa', 'return' => 'mataas'));
ngayon ay magiging:
$ Dp = bagong DecisionParameters ang (); $ Pagpipilian = ng bagong DecisionMaker ($ dp); alingawngaw $ pinili-> makeDecision (array ('pagsusumikap' => 'mababa', 'return' => 'mataas'));
Ang sitwasyon na ito ay magiging mas masakit na ang bilang ng mga dependencies para sa isang klase ay nadagdagan, at kung ano kung ang mga mga dependencies may kanilang sarili dependencies? Ito ay maaaring masyadong mabilis maging isang bagay na pangangasiwa ng bangungot! Magpasok ng dependency iniksyon lalagyan (o frameworks) ...
Magpatuloy sa pagbabasa 'Quick Start Symfony Di (dependency iniksyon) Tutorial' »

















































