Posts tagged: yaml

Quick Symfony Fillimi DI (Injection varësisë) Tutorial

Nga , e shtunë 14 gusht 2010 2:21 pm

Çfarë është varësisë Injection (DI)?

Injeksion varësisë është një teknikë që lejon për objekte të shoqëruar lirshëm brenda një aplikim të software. Në përgjithësi, nëse një objekt kërkon qasje në funksionalitetin e një tjetër ajo do të jetë instantiated vendit kryesor të sistemeve të shoqëruar fort. Me injeksion varësisë implementuese injektuar ne objektet e nevojshme gati për përdorim (nganjëherë referuar edhe përmbysja e kontrollit - IOC). Merrni shembullin e mëposhtëm:

  <? Php
 klasë DecisionMaker {
     makeDecision publik funksion ($ array parametrat) {
         / / Nevoja përshtatës bazës së të dhënave
         $ Dp = new DecisionParameters ();
         $ $ ParameterScore = dp-> getScore ($ parametrat);
         / * ...  Logjika e disa më shumë vendim ...  * /
         Kthimi ($ parameterScore> 50);
     }
 } 

Kjo pjesë e kodit është e thënë të jetë e shoqëruar ngushtë me objektin DecisionParameters. Rishkrimin më lart në një mënyrë të shoqëruar lirshëm ne do të kemi diçka si ....

  <? Php
 klasë DecisionMaker {
     private $ _dp;
     publik __ funksion konstrukt ($ PD) {
         $ Kjo-> _dp = $ dp;
     }
     makeDecision publik funksion ($ array parametrat) {
         $ ParameterScore = $ this-> _dp-> getScore ($ parametrat);
         / * ...  Logjika e disa më shumë vendim ...  * /
         Kthimi ($ parameterScore> 50);
     }
 } 

Përderisa fituar të mirat e kodit shoqëruar lirshëm ne jemi duke shtuar kompleksitetin e tillë që çdo herë që një objekt është instantiated ne gjithashtu duhet të ilustroj me shembull konkret varësinë e saj dhe të kalojë këto në shumë. Për shembull, këtë:

  $ Zgjedhje = DecisionMaker i ri ();
 echo $ zgjedhje-> makeDecision (array ('përpjekje' => 'ulët', 'kthimi' => 'e lartë')); 

tani bëhet:

  $ Dp = new DecisionParameters ();
 $ Zgjedhje = new DecisionMaker ($ PD);
 echo $ zgjedhje-> makeDecision (array ('përpjekje' => 'ulët', 'kthimi' => 'e lartë')); 

Kjo situatë bëhet më e dhimbshme si numri i varësi për një klasë është rritur, dhe atë nëse Dependencies vetë kanë Dependencies? Kjo mund shumë shpejt të bëhet një makth objekt administrata! Shkruani kontejnerët injeksion varësisë (apo kornizat) ...
Vazhdo leximin 'Quick Symfony Fillim DI Tutorial (Injection varësisë)' »

Doktrina: parazgjedhur datetime TANI ()

Nga , të mërkurën 30 dhjetor 2009 06:30

Unë kam qenë duke luftuar me ngritjen e një database për një skemë të re Zend Kornizë të projektit. Unë jam duke përdorur duke u përpjekur për të përdorur Doktrinës ORM për modelet e mia bazës së të dhënave. Unë kam nevojë për të ngritur skemë në mënyrë që ajo të më lejohet të caktojë një datë të paracaktuar dhe kohë për një kolonë `s datetime`, p.sh. kur shton një mesazh të ri unë të marrë timestamp korente. Pas shumë kërkimin dhe eksperimente kam gjetur zgjidhje kështu që unë jam ndarë atë.

Në tuaj skemës YAML skedar thjesht nuk e mëposhtme:

 Mesazh:
   actAs me:
     Timestampable:
       krijuar:
         Emri: created_at
         Lloji: Timestamp
         Formati: Ymd H: i: s
       përditësuar:
         Emri: last_updated
         Lloji: Timestamp
         Formati: Ymd H: i: s
   kolona:
     id:
       Lloji: integer
       fillore: e vërtetë
       autoincrement: e vërtetë
     Emri: string (255)
     email: string (300)
     Mesazhi: string (2000)

Nëse nga ana tjetër ju nuk doni një kolonë `s` s updated_at ju mund të përdorni të mëposhtme:

 Mesazh:
   actAs me:
     Timestampable:
       krijuar:
         Emri: created_at
         Lloji: Timestamp
         Formati: Ymd H: i: s
       përditësuar:
         me aftësi të kufizuara: e vërtetë
   kolona:
     id:
       Lloji: integer
       fillore: e vërtetë
       autoincrement: e vërtetë
     Emri: string (255)
     email: string (300)
     Mesazhi: string (2000)












Theme nga Panorama Themocracy

6 vizitorë online tani
4 mysafirë, 2 bots, 0 anëtarë
Vizitorë Max sot: 19 at 09:00 PM UTC
Këtë muaj: 56 në 25-04-2012 08:41 AM UTC
Këtë vit: 69 në 27-02-2012 09:56 am UTC
Gjithë koha: 130 në 28-03-2011 UTC 10:40 PM