Category: Zend_Cache

Quick Start Symfony DI (Suntikan Kebergantungan) Tutorial

Oleh , Sabtu 14 Ogos 2010 14:21

Apakah Suntikan Kebergantungan (DI)?

Suntikan pergantungan adalah satu teknik yang membolehkan objek yang longgar serta dalam aplikasi perisian. Secara umumnya jika objek memerlukan akses kepada fungsi yang lain ia akan instantiated dalaman yang membawa kepada sistem yang ketat serta. Dengan melaksanakan suntikan pergantungan kita menyuntik objek yang diperlukan sedia untuk digunakan (kadang-kadang juga dirujuk kepada kebalikannya kawalan - IOC). Ambil contoh berikut:

  <? Php
 kelas DecisionMaker {
     fungsi makeDecision awam (array $ parameter) {
         / / Perlu penyesuai pangkalan data
         $ Dp = baru DecisionParameters ();
         $ ParameterScore = $ dp-> getScore ($ parameter);
         / * ...  Keputusan beberapa logik ...  * /
         pulangan ($ parameterScore> 50);
     }
 } 

Sekeping kod ini dikatakan ketat ditambah pula dengan objek DecisionParameters . Menulis semula di atas dalam fesyen yang longgar di samping kita akan mempunyai sesuatu seperti ....

  <? Php
 kelas DecisionMaker {
     swasta $ _dp;
     awam fungsi __construct ($ dp) {
         $ This-> _dp = $ dp;
     }
     fungsi makeDecision awam (array $ parameter) {
         $ ParameterScore = $ this-> _dp-> getScore ($ parameter);
         / * ...  Keputusan beberapa logik ...  * /
         pulangan ($ parameterScore> 50);
     }
 } 

Walaupun mendapat manfaat kod yang longgar di samping kita menambah kerumitan itu bahawa setiap kali objek instantiated kita juga perlu instantiate kebergantungan dan lulus ini terlalu. Sebagai contoh, ini:

  $ Pilihan = DecisionMaker baru ();
 echo $ pilihan-> makeDecision (array ('usaha' => 'rendah', 'kembali' => 'tinggi')); 

kini menjadi:

  $ Dp = baru DecisionParameters ();
 $ Pilihan = new DecisionMaker ($ dp);
 echo $ pilihan-> makeDecision (array ('usaha' => 'rendah', 'kembali' => 'tinggi')); 

Keadaan ini menjadi lebih menyakitkan apabila bilangan kebergantungan untuk kelas bertambah, dan bagaimana jika kebergantungan sendiri telah kebergantungan? Ini agak mendadak boleh menjadi mimpi ngeri objek pentadbiran! Masukkan bekas suntikan pergantungan (atau rangka kerja) ...
Teruskan membaca 'Mula Pantas Symfony DI (Suntikan Kebergantungan) Tutorial' »













Tema Panorama oleh Themocracy

9 pelawat.
7 tetamu, 2 bots, 0 ahli
Max pengunjung hari ini: 19 pada 12:46 am UTC
Bulan ini: 19 19-08-2011 6:09 am UTC
Tahun ini: 130 28-03-2011 10:40 pm UTC
Semua masa: 130 28-03-2011 10:40 pm UTC