Posts Tagged: Zend_Cache

Stuttar Symfony DI (Dependency stungulyf) Tutorial

Með því að og laugardagur 14 Ágú 2010 2:21 pm

Hvað er Dependency stungulyf (DI)?

Yfirráðasvæði innspýting er tækni sem gerir ráð fyrir lauslega par mótmæla innan hugbúnaðar. Almennt ef hlutur þarf aðgang að virkni annars væri að smíða innra leiðandi að vel par kerfi. Með því að innleiða ánauðar inndælingu við sprauta tilskilin hlutir tilbúin til notkunar (stundum einnig nefnt Inversion af Control - IOC). Taktu eftirfarandi dæmi:

  <? Php?
 flokki DecisionMaker {
     opinber virka makeDecision (array kr breytur) {
         / / Vantar gagnagrunni millistykki
         $ DP = new DecisionParameters ();
         $ ParameterScore = $ DP-> getScore ($ viðföng);
         / * ...  Sumir meira ákvörðun rökfræði ...  * /
         aftur ($ parameterScore> 50);
     }
 } 

Þessi stykki af kóða er sagt að vel saman við DecisionParameters hlut. Endurskrifa ofan í lauslega par hátt við myndum hafa eitthvað eins og ....

  <? Php?
 flokki DecisionMaker {
     persónulegur $ _dp;
     almenningi virka __ reisa ($ DP) {
         $ This-> _dp = $ DP;
     }
     opinber virka makeDecision (array kr breytur) {
         $ ParameterScore = $ this-> _dp-> getScore ($ viðföng);
         / * ...  Sumir meira ákvörðun rökfræði ...  * /
         aftur ($ parameterScore> 50);
     }
 } 

Þó að öðlast ávinning af lauslega par kóða sem við erum að bæta flókin þannig að í hvert sinn hlut er smíða höfum við einnig að ræst ósjálfstæði hennar og fara þau í líka. Til dæmis, þetta:

  $ Kosturinn = new DecisionMaker ();
 echo $ val-> makeDecision (array ('átak' => 'lágt', 'til baka' => 'hár')); 

nú verður:

  $ DP = new DecisionParameters ();
 $ Kosturinn = new DecisionMaker ($ DP);
 echo $ val-> makeDecision (array ('átak' => 'lágt', 'til baka' => 'hár')); 

Þetta ástand verður meira sársaukafull eins og fjöldi ósjálfstæði fyrir bekknum er aukinn, og hvað ef ósjálfstæði sjálfir hafa ósjálfstæði? Þetta getur alveg fljótt orðið hlutur gjöf martröð! Sláðu inn ánauðar innspýting gáma (eða ramma) ...
Halda áfram að lesa 'á Quick Start Symfony Di (Dependency stungulyf) Tutorial' á »













Panorama Þema eftir Themocracy

9 gestir inni núna
8 gestir, 1 Botswana, 0 meðlimir
Max gestir í dag: 13 á 06:47 am UTC
Þessi mánuður: 16 á 01-05-2012 01:02 PM UTC
Á þessu ári: 69 á 27-02-2012 09:56 am UTC
Allra tíma: 130 á 28-03-2011 10:40 PM UTC