Ketahui lebih lanjut tentang suntikan pergantungan dalam PHP dan lihat cara untuk menggunakannya

青灯夜游
Lepaskan: 2023-04-10 16:38:01
ke hadapan
3361 orang telah melayarinya

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!

Ketahui lebih lanjut tentang suntikan pergantungan dalam PHP dan lihat cara untuk menggunakannya

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 ini
  • Melalui 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!

Label berkaitan:
sumber:juejin.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!