Quick Start Symfony DI (Suntikan Kebergantungan) Tutorial
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' »
















































