Memanfaatkan suntikan ketergantungan untuk peningkatan kesesuaian
suntikan ketergantungan (DI) dengan ketara meningkatkan kesesuaian kod Php 8 anda. Daripada membuat objek secara langsung dalam kelas, anda menyuntiknya sebagai kebergantungan. Ini membolehkan anda dengan mudah menggantikan kebergantungan sebenar dengan objek mengejek semasa ujian. Sebagai contoh, pertimbangkan kelas User
yang berinteraksi dengan pangkalan data:
// Without DI class User { public function getUserById(int $id): ?array { $db = new Database(); // Tight coupling! return $db->query("SELECT * FROM users WHERE id = $id"); } } // With DI class User { private Database $database; public function __construct(Database $database) { $this->database = $database; } public function getUserById(int $id): ?array { return $this->database->query("SELECT * FROM users WHERE id = $id"); } }
Dalam contoh DI, kelas User
bergantung pada objek Database
, yang diluluskan ke dalam pembina. Semasa ujian, anda boleh menyuntik objek pangkalan data mengejek yang mengembalikan data yang telah ditetapkan, menghapuskan keperluan untuk sambungan pangkalan data sebenar dan membuat ujian lebih cepat dan lebih dipercayai. Ini mengasingkan logik kelas User
dari kebergantungan luaran, yang membolehkan anda memberi tumpuan semata -mata pada fungsinya semasa ujian. Rangka kerja mengejek yang popular seperti phpunit dengan mudah boleh membuat objek mock ini. Ujian:
Suntikan pembina: lebih suka suntikan suntikan melalui pembina. Ini menjadikan kebergantungan eksplisit dan memastikan objek sentiasa dalam keadaan yang sah. Ini membolehkan penggantian pelaksanaan yang fleksibel semasa menguji dan mempromosikan gandingan longgar. Kod.
Pastikan kebergantungan mudah:
Elakkan kebergantungan yang terlalu kompleks. Fokus pada menyuntik hanya objek yang diperlukan, menjadikan kelas anda lebih fokus dan lebih mudah untuk diuji. Elakkan over-mocking, kerana ia boleh membuat ujian rapuh dan lebih sukar untuk difahami. Fokus pada mengejek kebergantungan luaran (pangkalan data, API, dan lain -lain) dan bukan komponen dalaman. Projek?Suntikan ketergantungan adalah asas gandingan longgar. Dengan menyuntik kebergantungan dan bukannya membuatnya secara dalaman, anda mengurangkan saling ketergantungan antara bahagian -bahagian yang berlainan aplikasi anda. Ini membawa kepada beberapa faedah:
Atas ialah kandungan terperinci Bagaimanakah saya boleh menggunakan suntikan ketergantungan untuk meningkatkan kebolehlihatan dalam php 8?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!