Rumah > pembangunan bahagian belakang > tutorial php > Cara mendaftar dan menggunakan penyedia perkhidmatan Laravel

Cara mendaftar dan menggunakan penyedia perkhidmatan Laravel

Joseph Gordon-Levitt
Lepaskan: 2025-03-07 01:18:09
asal
685 orang telah melayarinya

How to Register and Use Laravel Service Providers

bekas perkhidmatan dan penyedia perkhidmatan Laravel adalah asas kepada seni bina. Artikel ini meneroka bekas perkhidmatan, butiran pembekal perkhidmatan, pendaftaran, dan menunjukkan penggunaan praktikal dengan contoh.

Kami akan bermula dengan gambaran keseluruhan kontena perkhidmatan, diikuti dengan panduan komprehensif untuk membina penyedia perkhidmatan tersuai dan mengintegrasikannya ke dalam aplikasi Laravel anda. Kami juga akan mengkaji kaedah

dan register yang penting. boot

Memahami Bekas Perkhidmatan dan Penyedia Perkhidmatan

Bekas perkhidmatan Laravel bertindak sebagai repositori pusat untuk komponen aplikasi, menguruskan kebergantungan dan memudahkan suntikan ketergantungan. Sebagai dokumentasi rasmi menyatakan, ia adalah alat yang berkuasa untuk menguruskan kebergantungan kelas dan melakukan suntikan ketergantungan. Ini menghapuskan instantiasi manual dan mengurangkan gandingan ketat dalam kod anda.

Pertimbangkan contoh ini:

class SomeClass {
    public function __construct(FooBar $foobarObject) {
        // use $foobarObject object
    }
}
Salin selepas log masuk
Salin selepas log masuk
di sini,

disuntik secara automatik dari bekas perkhidmatan. FooBar

Mewujudkan pembekal perkhidmatan tersuai

Mari buat pembekal perkhidmatan tersuai. Pertama, menjana pembekal menggunakan Artisan:

php artisan make:provider EnvatoCustom
Salin selepas log masuk
Salin selepas log masuk
Ini mencipta

. Kaedah app/Providers/EnvatoCustomServiceProvider.php adalah di mana anda mengikat kelas ke bekas. Arahan register dalam providers perlu mengemas kini untuk mendaftarkan pembekal anda: config/app.php

App\Providers\EnvatoCustomServiceProvider::class,
Salin selepas log masuk
ini mendaftarkan pembekal, tetapi kini kosong. Bahagian seterusnya menunjukkan fungsi kaedah

. boot

kaedah dan boot register

Dokumentasi Laravel menekankan bahawa kelas mengikat tidak perlu jika mereka tidak bergantung kepada antara muka. Bekas boleh menyelesaikannya menggunakan refleksi. Walau bagaimanapun, antara muka yang mengikat kepada pelaksanaan bermanfaat untuk fleksibiliti.

Contoh dunia sebenar: Perkhidmatan Pengesahan

mari kita membina perkhidmatan pengesahan dengan pelbagai penyesuai (JSON dan XML, sebagai contoh). Ini mempamerkan kuasa penyedia perkhidmatan.

Buat antara muka:

:
  1. app/Library/Services/Contracts/AuthenticationServiceInterface.php
Buat pelaksanaan konkrit (mis.,
<?php
namespace App\Library\Services\Contracts;

interface AuthenticationServiceInterface {
    public function authenticate($credentials);
}
Salin selepas log masuk
dalam
    ):
  1. JsonAuthentication app/Library/Services/JsonAuthentication.php
mengikat antara muka dalam
<?php
namespace App\Library\Services;

use App\Library\Services\Contracts\AuthenticationServiceInterface;

class JsonAuthentication implements AuthenticationServiceInterface {
    public function authenticate($jsonData) {
        // Parse $jsonData and authenticate...
        return 'JSON based Authentication';
    }
}
Salin selepas log masuk
:
  1. EnvatoCustomServiceProvider.php
Kemas kini pengawal anda untuk menggunakan antara muka:
<?php
namespace App\Providers;

use Illuminate\Support\ServiceProvider;
use App\Library\Services\JsonAuthentication;

class EnvatoCustomServiceProvider extends ServiceProvider {
    public function register() {
        $this->app->bind('App\Library\Services\Contracts\AuthenticationServiceInterface', function ($app) {
            return new JsonAuthentication();
        });
    }

    public function boot() {
        // ...
    }
}
Salin selepas log masuk
  1. ingat untuk membersihkan cache permohonan anda selepas membuat perubahan ini.

Kaedah boot sering digunakan untuk tugas -tugas seperti mendaftarkan pendengar acara atau melihat komposer. Sebagai contoh, menambah komposer paparan:

class SomeClass {
    public function __construct(FooBar $foobarObject) {
        // use $foobarObject object
    }
}
Salin selepas log masuk
Salin selepas log masuk

atau mendefinisikan pengikatan model:

php artisan make:provider EnvatoCustom
Salin selepas log masuk
Salin selepas log masuk

Kesimpulan

Artikel ini meliputi bekas perkhidmatan dan penyedia perkhidmatan Laravel, membimbing anda melalui membuat dan mendaftarkan penyedia tersuai, dan menunjukkan aplikasi praktikal dengan contoh dunia nyata. Ingatlah untuk berunding dengan dokumentasi Laravel rasmi untuk butiran lanjut dan teknik lanjutan.

Atas ialah kandungan terperinci Cara mendaftar dan menggunakan penyedia perkhidmatan Laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan