Rumah > Artikel > rangka kerja php > Apakah suntikan pergantungan dan penyongsangan kawalan dalam laravel
Dalam laravel, suntikan kebergantungan ialah tingkah laku menyuntik komponen ke dalam aplikasi, yang merupakan pengisytiharan kebergantungan yang jelas ialah penyongsangan kawalan ialah prinsip reka bentuk pengaturcaraan berorientasikan objek, digunakan untuk mengurangkan kerumitan kod komputer . Tahap gandingan antara kelas bermakna satu kelas menyerahkan kawalannya kepada objek lain, dan kebergantungan antara kelas diselesaikan oleh objek ini.
Persekitaran pengendalian artikel ini: sistem Windows 10, Laravel versi 6, komputer Dell G3.
1. Suntikan ketergantungan
Istilah suntikan kebergantungan ialah istilah yang dicadangkan oleh Martin Fowler. Ia adalah tindakan menyuntik komponen ke dalam aplikasi. Seperti kata Ward Cunningham:
Suntikan kebergantungan ialah elemen utama dalam seni bina tangkas.
Contoh:
class UserProvider{ protected $connection; public function __construct(){ $this->connection = new Connection; } public function retrieveByCredentials( array $credentials ){ $user = $this->connection ->where( 'email', $credentials['email']) ->where( 'password', $credentials['password']) ->first(); return $user; } }
Jika anda ingin menguji atau mengekalkan kelas ini, anda mesti mengakses contoh pangkalan data untuk melaksanakan beberapa pertanyaan. Untuk mengelakkan daripada melakukan ini, anda boleh memisahkan kelas ini daripada kelas lain, anda mempunyai satu daripada tiga pilihan untuk menyuntik kelas Sambungan tanpa menggunakannya secara langsung.
2. Penyongsangan Kawalan
Penyongsangan Kawalan (disingkat IoC) ialah prinsip reka bentuk dalam pengaturcaraan berorientasikan objek yang boleh digunakan Kurangkan gandingan antara kod komputer. Kaedah yang paling biasa dipanggil Dependency Injection (DI), dan kaedah lain dipanggil "Dependency Lookup". Melalui penyongsangan kawalan, apabila objek dicipta, entiti luaran yang mengawal semua objek dalam sistem menghantar rujukan objek yang bergantung kepadanya.
Ringkasnya, kelas menyerahkan kawalannya kepada objek lain dan pergantungan antara kelas diselesaikan oleh objek ini. Suntikan kebergantungan ialah pengisytiharan kebergantungan yang jelas, manakala pencarian kebergantungan menyelesaikan kebergantungan melalui carian.
Penyongsangan kawalan bukanlah kaedah, tetapi idea reka bentuk adalah sama dengan rangka kerja Spring Tidak perlu risau tentang penyongsangan kata nama atribut yang diberikan kepada objek , dan semua yang kita lakukan dalam rangka kerja adalah untuk mengendalikan bekas tersebut secara automatik akan mencari atribut yang diperlukan melalui pemetaan dan menetapkannya secara pasif untuk mendapatkan atribut objek.
Pengetahuan lanjutan:
Penggunaan dalam Laravel
Suntikan kelas:
App::bind('foo', function($app){ return new FooBar; });
Contoh ini bermaksud mencipta kelas A dengan alias foo sebenarnya menjadikan FooBar apabila digunakan.
Cara untuk menggunakan kelas ini ialah:
$value = App::make('foo');
$value sebenarnya ialah objek FooBar.
Jika anda ingin menggunakan mod singleton untuk membuat instantiate kelas, kemudian gunakan:
App::singleton('foo', function(){ return new FooBar; });
Dengan cara ini, objek yang sama akan dijadikan instantiated setiap kali.
[Cadangan berkaitan: tutorial video laravel]
Atas ialah kandungan terperinci Apakah suntikan pergantungan dan penyongsangan kawalan dalam laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!