Apakah suntikan pergantungan? Artikel ini akan membawa anda melalui suntikan pergantungan dalam PHP, memperkenalkan sebab untuk suntikan pergantungan, dan aplikasinya saya harap ia akan membantu anda!
1 Apakah itu Suntikan Ketergantungan (DI)
- Suntikan Ketergantungan (DI) Malah, ia pada asasnya bermakna bahawa kebergantungan pada kelas disuntik secara automatik melalui pembina
- Dalam istilah orang awam, ini bermakna anda sedang mengendalikan kelas, tetapi beberapa kaedah atau fungsi kelas ini tidak dapat diselesaikan dengan kelas ini sahaja, tetapi ia hanya boleh dicapai dengan bantuan kelas lain
- Tanda paling langsung ialah apabila data parameter dihantar sebagai objek. Tegasnya, anda ingin mengendalikan kelas lain dalam kelas lain Terdapat saling bergantung antara kedua-dua kelas Kaedah lulus parameter dipanggil suntikan
2 , Sebab untuk. suntikan pergantungan
- Pada mulanya, apabila PHP perlu menggunakan kelas lain dalam satu kelas, ia akan melakukan operasi berikut
- Sebagai contoh saya perlu menggunakan kelas penyesuai dalam kelas kontena, dan ia perlu diselaraskan sebelum digunakan
- Jika sebilangan besar kelas luaran perlu digunakan, ini akan menyebabkan darjah gandingan menjadi terlalu tinggi, yang akan menyebabkan kemudiannya Penyenggaraan. Suntikan Ketergantungan Mudah
-
<?php
class container
{
private $adapter;
public function __construct()
{
$this->adapter = new adapter();
}
}
Salin selepas log masuk
Kod di atas terlalu tinggi digabungkan, membawa kepada kemunculan suntikan kebergantungan, terutamanya untuk memahami gandingan
Seperti yang ditunjukkan di bawah, kami hanya perlu Pas dalam objek kelas yang perlu dikendalikan Parameter operasi suntikan kebergantungan adalah objek, bukan parameter biasa Adakah anda mempunyai pemahaman yang lebih baik
Tetapi begitu mudah suntikan kebergantungan , ia akan menyebabkan jika anda bergantung pada banyak kelas, ia akan mengambil masa yang lama untuk lulus parameter dan mudah untuk keliru
- 4. Tahap tinggi suntikan kebergantungan
Untuk Untuk menyelesaikan masalah kekeliruan parameter di atas, suntikan kebergantungan telah berkembang pada masa iniMelalui kaedah ajaib, __get set objek
<?php
class container
{
private $adapter;
public function __construct(adapter $adapter)
{
$this->adapter = $adapter;
}
}
Salin selepas log masuk
Pada kali ini, kita boleh menyelesaikan masalah terlalu banyak kebergantungan dan parameter yang mengelirukan. >
Kami mula-mula mentakrifkan kelas kontena, yang digunakan terutamanya Inject kelas yang anda mahu kendalikan ke dalam bekas
Apabila menggunakannya, anda hanya perlu lulus objek kontena < . - Ini akan menyebabkan semua objek tidak Apabila digunakan, ia akan disegerakan semula, menyebabkan kehilangan sumber
- Kita boleh melepasi penutupan supaya objek tidak akan disegerakan dan disuntik apabila anda perlu menggunakannya, buat seketika lagi
Anda boleh mengurangkan kehilangan sumber pelayan
<?php
class container
{
public $instance = [];
public function __set($name, $value)
{
$this->instance[$name] = $value;
}
}
$container = new container();
$container->adapter = new adapter();
Salin selepas log masuk
Alamat asal: https://juejin.cn/post/ 7004616671864291359
Pembelajaran yang disyorkan: "- Tutorial Video PHP
"-
Atas ialah kandungan terperinci Ketahui lebih lanjut tentang suntikan pergantungan dalam PHP dan lihat cara untuk menggunakannya. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!