Паведамленні з тэгамі: ініцыятыве

Хуткі старт Symfony DI (Dependency Injection) Падручнік

Па , у суботу 14 жніўня 2010 02:21 вечара

Што такое Dependency Injection (DI)?

Залежнасць ін'екцыі тэхніка, якая дазваляе свабодна звязаных аб'ектаў у рамках праграмнага забеспячэння. Наогул, калі аб'ект патрабуе доступу да функцыянальнасці іншага ён будзе створаны ўнутрана вядучых жорстка звязаных сістэм. Ажыццяўляючы ўкараненне залежнасці мы ўводзім неабходныя аб'екты гатовыя да выкарыстання (часам таксама завецца інверсіяй кіравання - МАК). Разгледзім наступны прыклад:

  <? PHP
 твар, якое прымае рашэння класа {
     грамадскіх makeDecision функцыі (масіў $ параметраў) {
         / / Неабходна адаптара БД
         $ Ар = новы DecisionParameters ();
         $ ParameterScore = $ DP-> getScore ($ параметраў);
         / * ...  Яшчэ некалькі рашэнняў логіка ...  * /
         вяртання ($ parameterScore> 50);
     }
 } 

Гэты фрагмент кода, як кажуць, цесна звязаны з аб'ектам DecisionParameters. Перапісванне вышэй у слабосвязанных мода нам давядзецца нешта накшталт ....

 <? PHP клас твар, якое прымае рашэння {прыватных $ _dp, грамадскія канструкцыі __ функцыі ($ інш) {$ гэта-> _dp = $ інш;} грамадскай makeDecision функцыі (масіў $ параметраў) {$ parameterScore = $ гэта-> _dp-> getScore ($ параметраў); / * ...  Яшчэ некалькі рашэнняў логіка ...  * / Return ($ parameterScore> 50);}} 

У той час як атрыманне пераваг слабосвязанных код, які мы дадаем складанасць такі, што кожны раз, калі ствараецца асобнік аб'екта мы таксама павінны асобнік сваёй залежнасці і перадаць іх у занадта. Напрыклад, гэта:

  $ = Выбар новых твар, якое прымае рашэння ();
 echo $ выбар-> makeDecision (масіў ('высілак' => 'нізкі', 'вяртанне' => 'высокі')); 

зараз выглядае так:

  $ Ар = новы DecisionParameters ();
 $ = Выбар новых твар, якое прымае рашэння ($ інш);
 echo $ выбар-> makeDecision (масіў ('высілак' => 'нізкі', 'вяртанне' => 'высокі')); 

Гэтая сітуацыя становіцца ўсё больш хваравітым, як лік залежнасцяў для класа павялічваецца, і што, калі залежнасць саміх залежнасцяў? Гэта можа даволі хутка стаць аб'ектам кашмар адміністрацыі! Калі ласка, увядзіце залежнасць ін'екцый кантэйнераў (або структуры) ...
Працягнуць чытанне "Хуткі старт Symfony DI (Dependency Injection) Падручнік" »

Маршрут запытаў для sitemap.xml звычаю кантролер / дзеянне

Па , у сераду 6 студзеня 2010 г. 00:13 раніцы

Для таго, каб прамыя запыты / sitemap.xml для карыстацкіх кантролера і дзеянні ў Zend Framework, прыкладанне проста дадайце наступнае ў вашым application.ini або альтэрнатыўнага канфігурацыйнага файла (напрыклад, я выкарыстоўваю navigation.ini):

 resources.router.routes.sitemap.route = "sitemap.xml"
 resources.router.routes.sitemap.defaults.controller = індэкс
 resources.router.routes.sitemap.defaults.action = Карта сайта

Прыклад кода для высновы можна ўбачыць, ствараючы дзеянняў у адпаведных кантролераў (напрыклад, мая карта знаходзіцца ў індэксе кантролер, карта дзеяння):

 < PHP
 Клас IndexController
     пашырае Zend_Controller_Action
 {
     / **
      * Аказвае карта сайта на аснове Zend_Navigation ўстаноўкі
      * /
     грамадскіх sitemapAction функцыі ()
     {
    	 echo $ гэта-> Выгляд-> рух () -> Карта сайта ();
    	 $ Гэта-> Выгляд-> раскладка () -> disableLayout ();
    	 $ Гэта-> _helper-> ViewRenderer-> setNoRender (праўда);
     }
 }

Sitemaps можа хутка і лёгка быць створаны з дапамогай Zend_Navigation , вялікі кароткае кіраўніцтва (і наогул вельмі карысная для Zend Framework падручнікі) з'яўляецца Zend адліўкі - Дынамічнае стварэнне меню сайта і паніровачныя сухары .













Панарама Тэма Themocracy

3 наведвальнікаў онлайн
1 гасцей, 2 ботаў, 0 карыстальнікаў
Макс наведвальнікаў сёння: 11 у 06:30 UTC
У гэтым месяцы: 16 ст 2012/05/01 01:02 вечара UTC
У гэтым годзе: 69 у 2012/02/27 09:56 UTC
За ўвесь час: 130 у 2011/03/28 10:40 вечара UTC