Warning: fopen(/homepages/30/d192847469/htdocs/evilprofessor.co.uk/public_html/wp-content/gt-cache/mk/_mk_tag_library) [function.fopen]: failed to open stream: Disk quota exceeded in /homepages/30/d192847469/htdocs/evilprofessor.co.uk/public_html/wp-content/plugins/global-translator/translator.php on line 1183

Warning: flock() expects parameter 1 to be resource, boolean given in /homepages/30/d192847469/htdocs/evilprofessor.co.uk/public_html/wp-content/plugins/global-translator/translator.php on line 1184

Warning: fwrite(): supplied argument is not a valid stream resource in /homepages/30/d192847469/htdocs/evilprofessor.co.uk/public_html/wp-content/plugins/global-translator/translator.php on line 1188

Warning: fclose(): supplied argument is not a valid stream resource in /homepages/30/d192847469/htdocs/evilprofessor.co.uk/public_html/wp-content/plugins/global-translator/translator.php on line 1190
Evilprofessor.co.uk »библиотека

Мислења обележани: библиотека

Quick Start Symfony ДИ (зависност инекција) Почетен курс

Со , сабота 14 Август, 2010 14:21

Што е зависност инекција (Di)?

Зависност инјекција е техника која им овозможува за лабаво заедно објекти во рамките на софтверска апликација. Општо земено, ако објект бара пристап до функционалноста на друга дека ќе се инстанцира внатрешно водечките компании на цврсто заедно системи. Со воведување на зависност инекција ние инјектираат потребните објекти подготвен за употреба (понекогаш исто така се нарекува инверзија на контрола - МОК). Да ги преземе следниве пример:

  <? PHP
 класа DecisionMaker {
     јавна функција makeDecision (низа $ параметри) {
         / / Потребата на базата на податоци адаптер
         $ ДП = new DecisionParameters ();
         $ ParameterScore = $ ДП-> getScore ($ параметри);
         / * ...  Некои повеќе одлука логика ...  * /
         враќање ($ parameterScore> 50);
     }
 } 

Овој дел од кодот се вели дека е цврсто поврзан со DecisionParameters објект. Препишување на погоре во лабаво заедно мода би имале нешто слично ....

 <? PHP класа DecisionMaker {приватна $ _dp; јавна функција __ construct ($ ДП) {$ ова-> _dp = $ ДП;} јавна функција makeDecision (низа $ параметри) {$ parameterScore = $ ова-> _dp-> getScore ($ параметри); / * ...  Некои повеќе одлука логика ...  * / Враќање ($ parameterScore> 50);}} 

Додека се здобие со придобивките на лабаво заедно кодот ние се додавајќи сложеност, како што секој пат кога објектот е инстанцира ние исто така треба да се показ своите зависности и да го положат овие во премногу. На пример, вака:

  $ Избор = new DecisionMaker ();
 echo $ избор-> makeDecision (array ('напор' => 'низок', 'враќање' => 'високо')); 

сега станува:

  $ ДП = new DecisionParameters ();
 $ Избор = new DecisionMaker ($ ДП);
 echo $ избор-> makeDecision (array ('напор' => 'низок', 'враќање' => 'високо')); 

Оваа ситуација станува болно колку и бројот на зависности за класа е зголемена, и што ако зависности самите имаат зависности? Оваа прилично брзо може да стане објект администрација кошмар! Внесете зависност инекција контејнери (или рамки) ...
Продолжи со читање "Quick Start Symfony ДИ (зависност инекција) Почетен курс '»













Панорама Тема страна Themocracy

5 посетители онлајн сега
4 гости, 1-ботови, 0 членови
Макс посетители денес: 12 во 07:51 UTC
Овој месец: 40 на 23-05-2012 03:33 часот UTC
Оваа година: 69 на 27-02-2012 09:56 часот UTC
Сите времиња: 130 на 28-03-2011 10:40 UTC