Паведамленні з тэгамі: YAML

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

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

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

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

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

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

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

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

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

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

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

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

Дактрына: DATETIME па змаўчанні NOW ()

Па , у сераду 30 сьнежня 2009 06:30 вечара

Я змагаўся са стварэння схемы базы дадзеных для новай Zend Framework, праект. Я выкарыстанне спрабуюць выкарыстоўваць дактрыну ОРМ для маёй мадэлі базы дадзеных. Мне трэба, каб стварыць схему так, каб ён дазволіў мне ўсталяваць дату і час па змаўчанні для `` даты слупка, напрыклад, пры даданні новага паведамлення я атрымліваю бягучы час. Пасля доўгіх пошукаў і эксперыментаў я знайшоў рашэнне, таму я дзялю яе.

У вашай схеме YAML файл, проста выканайце наступныя дзеянні:

 Паведамленне:
   ActAs:
     Timestampable:
       створаны:
         Назва: created_at
         Тып: пазнакі
         Фармат: Ymd H: I: S
       абнаўленне:
         Назва: last_updated
         Тып: пазнакі
         Фармат: Ymd H: I: S
   слупкоў:
     ID:
       Тып: цэлае
       першасная: сапраўдны
       автоинкремент: сапраўдны
     Назва: радок (255)
     электронная пошта: радок (300)
     паведамленне: радок (2000)

Калі, з другога боку, вы не хочаце `` updated_at калонкі можна выкарыстоўваць наступныя:

 Паведамленне:
   ActAs:
     Timestampable:
       створаны:
         Назва: created_at
         Тып: пазнакі
         Фармат: Ymd H: I: S
       абнаўленне:
         інвалідаў: сапраўдны
   слупкоў:
     ID:
       Тып: цэлае
       першасная: сапраўдны
       автоинкремент: сапраўдны
     Назва: радок (255)
     электронная пошта: радок (300)
     паведамленне: радок (2000)












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

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