Post tag: yaml

Mabilis na Pagsisimula Symfony Di (dependency inyeksyon) Tutorial

, Sabado ika-14 Agosto 2010 14:21

Ano ang dependency iniksyon (Di)?

Dependency iniksyon ay isang pamamaraan na nagbibigay-daan para sa maluwag na kaisa bagay sa loob ng isang application software. Pangkalahatan na kung ang isang bagay ay nangangailangan ng access sa functionality ng ibang ito instantiated sa nangungunang loob sa mga mahigpit kaisa system. Sa pamamagitan ng pagpapatupad ng iniksyon ng dependency namin paturukan ng mga kinakailangang bagay handa para sa paggamit (minsan din-refer sa pagbabaligtad ng control - IOC). Dalhin ang mga sumusunod na halimbawa:

  <? Php
 klase DecisionMaker {
     pampublikong na pagpapaandar makeDecision (array $ parameter) {
         / / Kailangan ng database adaptor
         $ Dp = bagong DecisionParameters ang ();
         $ ParameterScore = $ dp-> getScore ($ parameter);
         / * ...  Ilang higit na lohika desisyon ...  * /
         return ($ parameterScore> 50);
     }
 } 

Ang piraso ng code na ito ay sinabi na mahigpit kaisa sa bagay DecisionParameters. Muling pagsusulat ng sa itaas sa isang maluwag kaisa fashion gusto naming magkaroon ng isang bagay tulad ng ....

  <? Php
 klase DecisionMaker {
     pribadong $ _dp;
     pampublikong function na __ tayuan ($ dp) {
         $ Ito-> _dp = $ dp;
     }
     pampublikong na pagpapaandar makeDecision (array $ parameter) {
         $ ParameterScore = $ ito-> _dp-> getScore ($ parameter);
         / * ...  Ilang higit na lohika desisyon ...  * /
         return ($ parameterScore> 50);
     }
 } 

Habang ang pagkakaroon ng mga benepisyo ng maluwag kaisa code namin ay pagdaragdag sa kumplikado tulad na ang oras sa bawat bagay ng isang instantiated din namin upang magbigay ng halimbawa nito mga dependencies at pumasa ito sa masyadong. Halimbawa, ito:

  $ Pagpipilian = bagong DecisionMaker ();
 alingawngaw $ pinili-> makeDecision (array ('pagsusumikap' => 'mababa', 'return' => 'mataas')); 

ngayon ay magiging:

  $ Dp = bagong DecisionParameters ang ();
 $ Pagpipilian = ng bagong DecisionMaker ($ dp);
 alingawngaw $ pinili-> makeDecision (array ('pagsusumikap' => 'mababa', 'return' => 'mataas')); 

Ang sitwasyon na ito ay magiging mas masakit na ang bilang ng mga dependencies para sa isang klase ay nadagdagan, at kung ano kung ang mga mga dependencies may kanilang sarili dependencies? Ito ay maaaring masyadong mabilis maging isang bagay na pangangasiwa ng bangungot! Magpasok ng dependency iniksyon lalagyan (o frameworks) ...
Magpatuloy sa pagbabasa 'Quick Start Symfony Di (dependency iniksyon) Tutorial' »

Doktrina: Datetime default NGAYON ()

, Miyerkules-30 ng Disyembre 2009 6:30 pm

Ako ay struggling sa pag-set up ng isang database schema para sa isang bagong proyekto ng Zend Framework . Ako ay paggamit sinusubukan mong gamitin ang doktrina ORM para sa aking mga modelo ng database. Kailangan ko i-set up ang schema upang ito pinapayagan sa akin upang itakda ang isang default na petsa at oras para sa isang `Datetime` hanay, gaya ng kapag nagdadagdag ng isang bagong mensahe na nakukuha ko ang kasalukuyang timestamp. Pagkatapos magkano naghahanap at pag-eeksperimento ko nahanap ang solusyon kaya ako pagbabahagi ng ito.

Sa iyong schema YAML file lamang gawin ang mga sumusunod:

 Mensahe:
   actAs:
     Timestampable:
       nilikha:
         pangalan: created_at
         uri: timestamp
         format: Ymd H: i: s
       update:
         pangalan: last_updated
         uri: timestamp
         format: Ymd H: i: s
   haligi:
     id:
       uri: integer
       pangunahing: totoo
       autoincrement: totoo
     pangalan: string (255)
     email: string (300)
     mensahe: string (2000)

Kung sa kabilang banda ay hindi mo nais isang `updated_at ang` haligi maaari mong gamitin ang sumusunod:

 Mensahe:
   actAs:
     Timestampable:
       nilikha:
         pangalan: created_at
         uri: timestamp
         format: Ymd H: i: s
       update:
         kapansanan: totoo
   haligi:
     id:
       uri: integer
       pangunahing: totoo
       autoincrement: totoo
     pangalan: string (255)
     email: string (300)
     mensahe: string (2000)












Panorama Tema sa pamamagitan ng Themocracy

2 mga bisita online ngayon
2 mga bisita, 0 bot, 0 miyembro
Max mga bisita ngayon: 11 sa 03:05 am UTC
Sa buwang ito: 18 sa 2012/07/05 04:35 pm UTC
Ito taon: 69 sa 27-02-2012 09:56 am UTC
Lahat ng oras: 130 sa 28-03-2011 10:40 pm UTC