Permulaan Pantas Symfony DI (Suntikan Pergantungan) Tutorial
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' »

















































