Rumah  >  Artikel  >  rangka kerja php  >  Pembangunan Laravel: Bagaimana untuk mengakses perkhidmatan menggunakan Laravel Facades?

Pembangunan Laravel: Bagaimana untuk mengakses perkhidmatan menggunakan Laravel Facades?

王林
王林asal
2023-06-13 19:12:50613semak imbas

Laravel ialah rangka kerja pembangunan aplikasi web PHP sumber terbuka yang menyediakan sintaks elegan dan alatan berkuasa untuk membantu anda membina aplikasi web yang cekap, selamat dan berskala. Fasad dalam Laravel ialah ciri yang sangat berguna yang membolehkan anda mengakses perkhidmatan dalam bekas perkhidmatan Laravel menggunakan sintaks yang mudah. Dalam artikel ini, kami akan meneroka cara menggunakan Laravel Facades untuk mengakses perkhidmatan.

1.

Dalam Laravel, perkhidmatan ialah koleksi semua fungsi dan komponen yang diperlukan untuk membina aplikasi. Perkhidmatan termasuk sambungan pangkalan data, pemacu cache, perkhidmatan mel, perkhidmatan baris gilir, dsb. Bekas perkhidmatan Laravel ialah alat yang mengumpulkan perkhidmatan ini ke satu tempat dan membolehkan anda mengaksesnya dengan cepat dan mudah.

Setiap perkhidmatan ditakrifkan dalam kelas dan contoh didaftarkan dalam bekas perkhidmatan. Anda boleh menggunakan contoh ini untuk menggunakan perkhidmatan tersebut. Di Laravel, Facades menyediakan cara mudah untuk mengakses perkhidmatan dalam bekas perkhidmatan.

2. Apakah Fasad?

Fasad ialah corak reka bentuk yang menyediakan cara untuk pengguna mengakses subsistem dengan mudah. Fasad dalam Laravel ialah jenis kelas khas yang membolehkan anda mengakses perkhidmatan dalam bekas perkhidmatan Laravel menggunakan sintaks mudah.

Anda boleh menganggap Facades sebagai cara untuk mengakses perkhidmatan menggunakan antara muka statik. Fasad menyediakan antara muka statik yang boleh mengakses perkhidmatan dalam bekas perkhidmatan. Apabila anda menggunakan fasad, Laravel mengendalikan semua kebergantungan dan menghantar permintaan kepada contoh yang betul.

Dalam Laravel, setiap perkhidmatan mempunyai kelas penampilan yang sepadan. Contohnya, jika anda ingin menggunakan perkhidmatan caching Laravel, anda boleh menggunakan kelas fasad Cache. Kelas ini menyediakan antara muka yang mudah untuk mengakses perkhidmatan cache supaya anda boleh menggunakannya dengan mudah dalam aplikasi anda.

3. Bagaimana menggunakan Facades untuk mengakses perkhidmatan?

Sekarang mari lihat cara menggunakan Facades untuk mengakses perkhidmatan. Katakan anda ingin menggunakan perkhidmatan caching Laravel. Selain akses terus menggunakan bekas perkhidmatan, anda juga boleh menggunakan kelas fasad Cache. Berikut ialah contoh kod:

use IlluminateSupportFacadesCache;
  
Route::get('/cache', function () {
    $value = Cache::get('key');
    if ($value) {
        return $value;
    }
    Cache::put('key', 'value', 60);
    return 'value';
});

Dalam kod tersebut, kami menggunakan kelas IlluminateSupportFacadesCache untuk mencipta laluan bernama "cache". Dalam pengendali laluan, kami menggunakan fasad Cache untuk mengakses perkhidmatan cache. Pertama, kami menggunakan kaedah Cache::get() untuk menyemak sama ada nilai yang kami perlukan wujud dalam cache Jika ia wujud, kami terus mengembalikan nilai yang disimpan dalam cache. Jika tidak, kami menggunakan kaedah Cache::put() untuk menyimpan nilai dalam cache dan mengembalikannya.

Contoh ini menunjukkan cara menggunakan Laravel Facades untuk mengakses perkhidmatan. Dengan menggunakan kelas fasad, kami boleh mengakses perkhidmatan cache dengan mudah dan tidak perlu menggunakan bekas perkhidmatan secara eksplisit untuk mendapatkan contoh perkhidmatan.

4. Bagaimana untuk mencipta Facades?

Selain menggunakan Fasad terbina dalam Laravel, anda juga boleh membuat kelas fasad anda sendiri. Mencipta kelas fasad anda sendiri membolehkan anda menggunakan mana-mana kelas sebagai fasad, tidak terhad kepada perkhidmatan yang disediakan oleh Laravel secara lalai.

Untuk mencipta kelas fasad, anda perlu mencipta kelas yang diwarisi daripada IlluminateSupportFacadesFacade. Kelas ini perlu melaksanakan kaedah yang dipanggil getFacadeAccessor(), yang mengembalikan rentetan yang mewakili pengecam perkhidmatan yang diwakili oleh kelas fasad dalam bekas perkhidmatan. Berikut ialah kod untuk kelas fasad contoh:

namespace AppFacades;
  
use IlluminateSupportFacadesFacade;
  
class MyServiceFacade extends Facade
{
    protected static function getFacadeAccessor()
    {
        return 'my_service';
    }
}

Dalam contoh ini, kami mencipta kelas fasad yang dipanggil MyServiceFacade. Kelas ini mewarisi daripada IlluminateSupportFacadesFacade Kaedah getFacadeAccessor() mengembalikan rentetan 'my_service', yang mewakili pengecam perkhidmatan yang diwakili oleh kelas penampilan ini dalam bekas perkhidmatan.

Untuk menggunakan kelas penampilan tersuai ini, anda perlu menambah pembekal perkhidmatan terlebih dahulu. Dalam pembekal perkhidmatan, anda perlu menambah contoh perkhidmatan pada bekas perkhidmatan dan beritahu bekas perkhidmatan bahawa ia boleh mengakses perkhidmatan melalui kelas penampilan tersuai. Berikut ialah kod untuk pembekal perkhidmatan sampel:

namespace AppProviders;
  
use IlluminateSupportServiceProvider;
use AppServicesMyService;
use AppFacadesMyServiceFacade;
  
class MyServiceProvider extends ServiceProvider
{
    public function register()
    {
        $this->app->bind('my_service', function () {
            return new MyService();
        });
          
        $this->app->bind('MyServiceFacade', function () {
            return new MyServiceFacade();
        });
    }
}

Dalam pembekal perkhidmatan ini, kami menambahkan contoh perkhidmatan bernama 'my_service' pada bekas perkhidmatan dan menambah contoh perkhidmatan bernama 'MyServiceFacade' kelas penampilan tersuai. Dengan cara ini, kami boleh menggunakan kelas penampilan tersuai untuk mengakses perkhidmatan. Berikut ialah contoh kod untuk menggunakan MyServiceFacade untuk mengakses perkhidmatan:

use AppFacadesMyServiceFacade;
  
Route::get('/my-service', function () {
    return MyServiceFacade::doSomething();
});

Dalam contoh ini, kami merujuk kelas fasad tersuai dan menggunakan antara muka statiknya untuk mengakses perkhidmatan bernama 'my_service'.

Ringkasan:

Facades ialah alat yang sangat mudah yang membolehkan anda mengakses perkhidmatan dalam bekas perkhidmatan menggunakan sintaks mudah. Dalam Laravel, anda boleh menggunakan fasad lalai yang disediakan atau mencipta kelas fasad tersuai anda sendiri. Paling penting, tidak kira kelas fasad yang anda gunakan, anda menikmati faedah menjadikan bekas perkhidmatan lebih mudah digunakan dan lebih mudah.

Atas ialah kandungan terperinci Pembangunan Laravel: Bagaimana untuk mengakses perkhidmatan menggunakan Laravel Facades?. 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