Quick Start Symfony DI (Dependency Injection) Tutorial
Apa Ketergantungan Injection (DI)?
Ketergantungan injeksi adalah teknik yang memungkinkan untuk objek longgar digabungkan dalam aplikasi perangkat lunak. Umumnya jika sebuah objek membutuhkan akses ke fungsi lain akan instantiated internal yang mengarah ke sistem ketat ditambah. Dengan menerapkan injeksi ketergantungan kita menyuntikkan benda-benda yang dibutuhkan siap digunakan (kadang-kadang juga disebut inversi kontrol - IOC). Ambil contoh berikut:
<? Php kelas decisionmaker { fungsi publik makeDecision (array $ parameter) { / / Butuh adaptor database $ Dp = new DecisionParameters (); $ ParameterScore = $ dp-> getScore ($ parameter); / * ... Beberapa lebih keputusan logika ... * / kembali ($ parameterScore> 50); } }
Potongan kode ini dikatakan erat digabungkan ke objek DecisionParameters. Menulis ulang di atas dalam mode longgar ditambah kita akan memiliki sesuatu seperti ....
<? Php kelas decisionmaker { private $ _dp; fungsi publik __construct ($ dp) { $ This-> _dp = $ dp; } fungsi publik makeDecision (array $ parameter) { $ ParameterScore = $ this-> _dp-> getScore ($ parameter); / * ... Beberapa lebih keputusan logika ... * / kembali ($ parameterScore> 50); } }
Sementara memperoleh manfaat dari kode longgar ditambah kita menambahkan kompleksitas seperti bahwa setiap kali sebuah objek adalah instantiated kita juga harus instantiate dependensinya dan lulus ini dalam juga. Misalnya, ini:
$ Pilihan = decisionmaker baru (); echo $ pilihan-> makeDecision (array ('usaha' => 'rendah', 'kembali' => 'tinggi'));
sekarang menjadi:
$ Dp = new DecisionParameters (); $ Pilihan = baru decisionmaker ($ dp); echo $ pilihan-> makeDecision (array ('usaha' => 'rendah', 'kembali' => 'tinggi'));
Situasi ini menjadi lebih menyakitkan karena jumlah dependensi untuk kelas meningkat, dan bagaimana jika dependensi sendiri memiliki dependensi? Hal ini dapat cukup cepat menjadi mimpi buruk administrasi objek! Masukkan wadah ketergantungan suntikan (atau kerangka kerja) ...
Lanjutkan membaca 'Quick Start Symfony DI (Dependency Injection) Tutorial' »
















































