Quick Start Symfony DI (Dependency Injection) Tutorial
Hvað er Dependency Injection (DI)?
Háð inndælingu er tækni sem gerir ráð fyrir lauslega saman hluti innan hugbúnaðar. Almennt ef hlut þarf aðgang að virkni annars væri instantiated innra leiðir til vel saman kerfi. Með því að innleiða háð inndælingu við sprauta þarf hluti tilbúnar til notkunar (stundum einnig nefnt inversion stjórna - IOC). Taktu eftirfarandi dæmi:
<? PHP bekk DecisionMaker { opinber virka makeDecision (array $ viðföng) { / / Vantar gagnagrunn millistykki $ DP = new DecisionParameters (); $ ParameterScore = $ DP-> getScore ($ viðföng); / * ... Sumir fleiri ákvörðun rökfræði ... * / aftur ($ parameterScore> 50); } }
Þessi stykki af kóða er sagður vera þétt saman að DecisionParameters mótmæla. Endurskrifa ofangreindar í lauslega saman tísku við myndum hafa eitthvað eins og ....
<? PHP bekk DecisionMaker { persónulegur $ _dp; opinber virka __construct ($ DP) { $ Þessu-> _dp = $ DP; } opinber virka makeDecision (array $ viðföng) { $ ParameterScore = $ þessu-> _dp-> getScore ($ viðföng); / * ... Sumir fleiri ákvörðun rökfræði ... * / aftur ($ parameterScore> 50); } }
Þó að öðlast ávinning af lauslega saman kóða við erum að bæta flókið þannig að í hvert sinn hlut er instantiated Við höfum einnig að ræst ósjálfstæði og framhjá þessum í líka. Til dæmis þetta:
$ Val = new DecisionMaker (); echo $ val-> makeDecision (array ('áreynsla' => 'lágt', 'aftur' => 'hár'));
Nú verður því:
$ DP = new DecisionParameters (); $ Val = new DecisionMaker ($ DP); echo $ val-> makeDecision (array ('áreynsla' => 'lágt', 'aftur' => 'hár'));
Þetta ástand verður meira sársaukafull eins og the tala af ósjálfstæði fyrir flokk er aukinn, og hvað ef ósjálfstæði sig hafa ósjálfstæði? Þetta getur alveg fljótt orðið gjöf hlut martröð! Sláðu háð inndælingu gáma (eða ramma) ...
Halda áfram að lesa "Quick Start Symfony DI (Dependency Injection) Tutorial" »
















































