Posts tagged: symfony

Permulaan Pantas Symfony DI (Suntikan Pergantungan) Tutorial

Oleh , Sabtu 14 Ogos 2010 14:21

Apakah Pergantungan Suntikan (DI)?

Suntikan pergantungan adalah satu teknik yang membolehkan objek yang longgar serta dalam aplikasi perisian. Umumnya jika objek memerlukan akses kepada fungsi yang lain, ia akan instantiated dalaman peneraju kepada sistem yang ketat serta. Oleh melaksanakan suntikan pergantungan kita menyuntik objek yang diperlukan sedia untuk digunakan (kadang-kadang juga dirujuk kepada penyongsangan 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);
     }
 } 

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

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

Walaupun mendapat manfaat kod yang longgar serta kami menambah kerumitan bahawa setiap kali objek yang instantiated kita juga harus memberi contoh kebergantungan dan lulus ini terlalu. Sebagai contoh, ini:

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

kini menjadi:

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

Keadaan ini menjadi lebih menyakitkan kerana bilangan kebergantungan untuk kelas meningkat, dan apa jika kebergantungan diri mereka mempunyai kebergantungan? Ini secara sangat cepat boleh menjadi mimpi ngeri pentadbiran objek! Masukkan bekas suntikan pergantungan (atau rangka kerja) ...
Teruskan membaca 'Quick Start Symfony DI (Pergantungan Suntikan) Tutorial' »













Tema Panorama oleh Themocracy

10 pelawat dalam talian sekarang
5 tetamu, 5 bots, 0 ahli
Max pelawat hari ini: 19 pada 01:56 am UTC
Bulan ini: 26 di 2012/4/4 10:27 pm UTC
Tahun ini: 69 pada 27-02-2012 09:56 am UTC
Semua masa: 130 pada 28-03-2011 10:40 pm UTC