cari
Rumahrangka kerja phpLaravelCara menggunakan suntikan kebergantungan laravel

Dependency Injection ialah corak reka bentuk yang boleh mengurangkan kerumitan kod dan meningkatkan kebolehselenggaraan dan kebolehujian kod Ia merupakan teknologi penting dalam pembangunan aplikasi PHP moden. Laravel ialah rangka kerja PHP popular yang disertakan dengan bekas suntikan kebergantungan yang boleh membantu kami mengurus penciptaan dan pelepasan objek dengan lebih baik. Dalam artikel ini, kita akan belajar cara menggunakan ciri suntikan kebergantungan Laravel.

1. Apakah suntikan pergantungan Laravel?

Suntikan ketergantungan ialah corak pengaturcaraan yang boleh mengurangkan gandingan dengan menghantar kebergantungan satu objek kepada objek lain yang memanggilnya. Dalam pengaturcaraan berorientasikan objek, terdapat kebergantungan antara pelbagai bahagian yang membentuk objek Setiap objek perlu bergantung pada contoh objek lain untuk berfungsi dengan baik. Tujuan suntikan kebergantungan adalah untuk memisahkan kebergantungan ini dari dalam objek, supaya kebergantungan objek diuruskan oleh bekas luaran.

Untuk aplikasi PHP, proses suntikan kebergantungan secara amnya dibahagikan kepada langkah berikut:

  1. Tentukan kebergantungan: Tentukan objek atau nilai lain yang bergantung pada setiap objek.
  2. Konfigurasikan bekas: Daftarkan tika objek yang diperlukan ke dalam bekas.
  3. Selesaikan kebergantungan: Apabila kaedah sesuatu objek perlu dipanggil, bekas itu secara automatik menyelesaikan kejadian objek lain yang bergantung padanya.

Bekas suntikan kebergantungan Laravel ialah alat yang sangat berkuasa yang boleh menyelesaikan masalah pengurusan kebergantungan dengan mudah.

2. Penggunaan suntikan pergantungan dalam Laravel

Mari lihat cara menggunakan suntikan pergantungan dalam Laravel.

  1. Mendaftarkan tika objek

Dalam Laravel, kita boleh menggunakan kaedah bind bekas untuk mendaftarkan tika objek. Sebagai contoh, kami ingin mendaftarkan objek UserService dan menambah kod berikut dalam pembekal perkhidmatan:

public function register()
{
    $this->app->bind(UserService::class, function($app) {
        return new UserService($app->make(UserRepository::class));
    });
}

Di sini kami menggunakan kaedah bind untuk mendaftarkan UserService ke dalam bekas dan menentukan fungsi penutupan untuk mencipta contoh objek. Dalam fungsi penutupan, kami menggunakan kaedah buat bekas untuk mendapatkan objek UserRepository yang bergantung kepada UserService.

  1. Menggunakan Suntikan Ketergantungan

Sekarang kita telah mendaftarkan objek UserService dalam bekas, bagaimana untuk menggunakannya dalam pengawal? Ia sangat mudah, kita hanya perlu menentukan parameter UserService dalam pembina pengawal. Contohnya:

use App\Services\UserService;

class UserController extends Controller
{
    private $user;

    public function __construct(UserService $user)
    {
        $this->user = $user;
    }
}

Di sini kami mentakrifkan parameter objek UserService dalam pembina UserController. Kami tidak perlu mencipta objek UserService secara manual, Laravel secara automatik akan menyuntiknya ke dalam parameter pembina.

  1. Selesaikan kebergantungan secara automatik

Bekas suntikan kebergantungan Laravel boleh menyelesaikan kebergantungan secara automatik, membolehkan kami menggunakan suntikan kebergantungan dengan mudah. Sebagai contoh, kami mendaftarkan kod berikut dalam pembekal perkhidmatan:

public function register()
{
    $this->app->bind(UserService::class, function($app) {
        return new UserService($app->make(UserRepository::class));
    });
}

Kemudian kami boleh menggunakan UserService terus dalam pembina UserController:

use App\Services\UserService;

class UserController extends Controller
{
    private $user;

    public function __construct(UserService $user)
    {
        $this->user = $user;
    }
}

Apabila kami membina objek UserController , Laravel secara automatik akan mengesan bahawa ia memerlukan objek UserService, dan kemudian secara automatik mencipta objek UserService dan menyuntiknya ke dalam UserController.

  1. Pass parameter

Kadangkala kita perlu lulus parameter semasa penciptaan objek Contohnya, apabila kita mencipta objek UserService, kita perlu menghantar objek UserRepository.

Kita boleh mencapai fungsi ini dengan menghantar parameter apabila mengikat objek. Contohnya:

public function register()
{
    $this->app->bind(UserService::class, function($app, $parameters) {
        return new UserService($parameters['userRepository']);
    });
}

$userService = app(UserService::class, ['userRepository' => new UserRepository()]);

Ini mencipta objek UserService dan memberikannya objek UserRepository baharu.

  1. Kebergantungan diwarisi

Kadangkala berbilang kelas bergantung pada kelas yang sama dan kami boleh menggunakan warisan untuk memudahkan kod suntikan kebergantungan. Contohnya:

class BaseService
{
    protected $repository;

    public function __construct(BaseRepository $repository)
    {
        $this->repository = $repository;
    }
}

class UserService extends BaseService
{
    public function __construct(UserRepository $userRepository)
    {
        parent::__construct($userRepository);
    }
}

Di sini kami mentakrifkan kelas BaseService untuk mengurus kebergantungan objek BaseRepository dan mewarisi kelas BaseService dalam kelas UserService. Dengan cara ini, objek BaseRepository boleh digunakan secara langsung dalam UserService.

3. Ringkasan

Bekas suntikan kebergantungan Laravel ialah alat yang sangat berkuasa yang boleh menyelesaikan masalah pengurusan pergantungan dengan mudah. Apabila menggunakan suntikan kebergantungan Laravel, anda perlu memberi perhatian kepada beberapa butiran:

  1. Tentukan kebergantungan: Tentukan objek atau nilai lain yang bergantung pada setiap objek, dan gunakan kaedah bind untuk mendaftarkannya dalam pembekal perkhidmatan ke dalam bekas.
  2. Gunakan suntikan kebergantungan: Tentukan parameter objek dalam pengawal dan tempat lain di mana tika objek perlu digunakan secara automatik akan menyelesaikan kebergantungan dan menyuntik objek semasa pelaksanaan.
  3. Parameter lulus: Anda boleh menggunakan parameter untuk menghantar objek bergantung semasa penciptaan objek.
  4. Kebergantungan diwarisi: Warisan boleh digunakan untuk memudahkan kod suntikan kebergantungan.

Atas ialah kandungan terperinci Cara menggunakan suntikan kebergantungan laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
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
Menggunakan Laravel: Menyelaraskan Pembangunan Web dengan PHPMenggunakan Laravel: Menyelaraskan Pembangunan Web dengan PHPApr 19, 2025 am 12:18 AM

Laravel mengoptimumkan proses pembangunan web termasuk: 1. Gunakan sistem penghalaan untuk menguruskan struktur URL; 2. Gunakan enjin templat bilah untuk memudahkan pembangunan pandangan; 3. Mengendalikan tugas-tugas yang memakan masa melalui beratur; 4. Gunakan eloquentorm untuk memudahkan operasi pangkalan data; 5. Ikuti amalan terbaik untuk meningkatkan kualiti kod dan penyelenggaraan.

Laravel: Pengenalan kepada Rangka Kerja Web PHPLaravel: Pengenalan kepada Rangka Kerja Web PHPApr 19, 2025 am 12:15 AM

Laravel adalah rangka kerja PHP moden yang menyediakan set alat yang berkuasa, memudahkan proses pembangunan dan meningkatkan kebolehpercayaan dan skalabilitas kod. 1) Eloquentorm memudahkan operasi pangkalan data; 2) enjin templat bilah membuat pembangunan front-end intuitif; 3) alat baris perintah artis meningkatkan kecekapan pembangunan; 4) Pengoptimuman Prestasi termasuk menggunakan mekanisme eagerloading, caching, mengikuti seni bina MVC, pemprosesan giliran dan kes ujian menulis.

Laravel: Senibina dan amalan terbaik MVCLaravel: Senibina dan amalan terbaik MVCApr 19, 2025 am 12:13 AM

Senibina MVC Laravel meningkatkan struktur dan pemeliharaan kod melalui model, pandangan, dan pengawal untuk pemisahan logik data, persembahan dan pemprosesan perniagaan. 1) Model memproses data, 2) Pandangan bertanggungjawab untuk paparan, 3) Pengawal memproses input pengguna dan logik perniagaan. Seni bina ini membolehkan pemaju memberi tumpuan kepada logik perniagaan dan mengelakkan jatuh ke dalam kod qagmire.

Laravel: Ciri -ciri utama dan kelebihan dijelaskanLaravel: Ciri -ciri utama dan kelebihan dijelaskanApr 19, 2025 am 12:12 AM

Laravel adalah rangka kerja PHP berdasarkan seni bina MVC, dengan sintaks ringkas, alat baris perintah yang kuat, operasi data yang mudah dan enjin templat fleksibel. 1. Sintaks elegan dan API yang mudah digunakan menjadikan pembangunan cepat dan mudah digunakan. 2. Alat baris perintah artisan memudahkan penjanaan kod dan pengurusan pangkalan data. 3.eloquentorm menjadikan operasi data intuitif dan mudah. 4. Enjin templat bilah menyokong logik paparan lanjutan.

Membina backend dengan Laravel: PanduanMembina backend dengan Laravel: PanduanApr 19, 2025 am 12:02 AM

Laravel sesuai untuk membina perkhidmatan backend kerana ia menyediakan sintaks elegan, fungsi yang kaya dan sokongan masyarakat yang kuat. 1) Laravel adalah berdasarkan seni bina MVC, memudahkan proses pembangunan. 2) Ia mengandungi eloquentorm, mengoptimumkan operasi pangkalan data. 3) Ekosistem Laravel menyediakan alat seperti sistem tukang, bilah dan penghalaan untuk meningkatkan kecekapan pembangunan.

Perkongsian Kemahiran Kerangka LaravelPerkongsian Kemahiran Kerangka LaravelApr 18, 2025 pm 01:12 PM

Dalam era kemajuan teknologi yang berterusan, menguasai kerangka lanjutan adalah penting untuk pengaturcara moden. Artikel ini akan membantu anda meningkatkan kemahiran pembangunan anda dengan berkongsi teknik yang kurang dikenali dalam rangka kerja Laravel. Dikenali dengan sintaks yang elegan dan pelbagai ciri, artikel ini akan menggali ciri -ciri yang kuat dan memberikan tips dan cara praktikal untuk membantu anda membuat aplikasi web yang cekap dan boleh dipelihara.

Perbezaan antara Laravel dan ThinkPhpPerbezaan antara Laravel dan ThinkPhpApr 18, 2025 pm 01:09 PM

Laravel dan ThinkPHP adalah kerangka PHP yang popular dan mempunyai kelebihan dan kekurangan mereka sendiri dalam pembangunan. Artikel ini akan membandingkan kedua -dua kedalaman, menonjolkan seni bina, ciri, dan perbezaan prestasi mereka untuk membantu pemaju membuat pilihan yang tepat berdasarkan keperluan projek khusus mereka.

Senarai Fungsi Login Pengguna LaravelSenarai Fungsi Login Pengguna LaravelApr 18, 2025 pm 01:06 PM

Membina keupayaan log masuk pengguna di Laravel adalah tugas penting dan artikel ini akan memberikan gambaran keseluruhan yang menyeluruh yang meliputi setiap langkah kritikal dari pendaftaran pengguna untuk log masuk pengesahan. Kami akan menyelam ke dalam kuasa keupayaan pengesahan terbina dalam Laravel dan membimbing anda melalui penyesuaian dan memperluaskan proses log masuk untuk memenuhi keperluan tertentu. Dengan mengikuti arahan langkah demi langkah ini, anda boleh membuat sistem log masuk yang selamat dan boleh dipercayai yang menyediakan pengalaman akses yang lancar untuk pengguna aplikasi Laravel anda.

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

EditPlus versi Cina retak

EditPlus versi Cina retak

Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod

PhpStorm versi Mac

PhpStorm versi Mac

Alat pembangunan bersepadu PHP profesional terkini (2018.2.1).

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Versi Mac WebStorm

Versi Mac WebStorm

Alat pembangunan JavaScript yang berguna

MantisBT

MantisBT

Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.