Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Ketahui lebih lanjut tentang suntikan pergantungan dalam PHP dan lihat cara untuk menggunakannya

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

青灯夜游
青灯夜游ke hadapan
2021-09-08 19:53:573378semak imbas

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();
    }
}
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;
    }
}
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();

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!

Kenyataan:
Artikel ini dikembalikan pada:juejin.cn. Jika ada pelanggaran, sila hubungi admin@php.cn Padam