Bagaimana cara kerja penyedia layanan dan wadah layanan menggunakan laravel?

Diterbitkan: 2022-09-16

Laravel terkadang bisa sangat sulit untuk ditangani bahkan untuk pengembang berpengalaman karena fungsionalitas inti sulit untuk dipahami. Tapi memang, pengembangan web itu menarik.

Salah satu fungsinya adalah Penyedia Layanannya, di mana saya akan memberikan gambaran rinci di blog ini. Saya juga akan menjelaskan cara kerja wadah layanan di laravel di blog ini.

Ini lebih sederhana dari yang Anda bayangkan. Karena itu, mari kita langsung ke dalamnya.

Apa itu penyedia layanan di laravel?

Penyedia layanan dalam aplikasi Laravel berfungsi sebagai titik inti dari mana aplikasi tersebut di-bootstrap. Akibatnya, penyedia digunakan untuk menyuntikkan layanan dasar laravel ke dalam wadah layanan serta layanan aplikasi kami, kelas, dan dependensinya ke dalam wadah layanan.

Ajakan bertindak baru

Penyedia untuk contoh ini dapat ditemukan di config/app.php sebagai larik bernama "penyedia". Lihat gambar di bawah ini:

Apa penyedia layanan di laravel 1?

Misalkan Anda ingin menggunakan penyedia layanan pihak ketiga, maka Anda harus menerapkan dalam konfigurasi array penyedia layanan.

Anda dapat melihat beberapa penyedia layanan sudah menjalankan seluruh aplikasi, misalnya, Auth, yang diperlukan untuk otentikasi aplikasi.

Bagaimana cara membuat penyedia layanan di laravel?

Untuk menggunakan penyedia layanan, Anda harus membuatnya terlebih dahulu. Akibatnya, kami akan menyiapkan penyedia layanan sekarang. Anda dapat menggunakan perintah yang disediakan di bawah ini untuk membuat penyedia layanan apa pun yang Anda butuhkan.

php artisan make:provider MyServiceProvider

Saat Anda menjalankan perintah, penyedia layanan akan dibuat di aplikasi Anda, yang kemudian dapat Anda gunakan.

Cara membuat penyedia layanan di laravel 1

Setelah itu, buka aplikasi Anda dan arahkan ke folder penyedia, di mana Anda akan menemukan penyedia layanan Anda.

Cara membuat penyedia layanan di laravel 2

Di sini Anda akan melihat dua metode, register() dan boot().

Metode register()

Sangat penting untuk mengetahui fakta bahwa metode register() memungkinkan kita untuk mendefinisikan binding ke wadah layanan kita. Misalnya, lihat kode di bawah ini:

Metode pendaftaran

$this->app adalah variabel global di laravel yang dapat mengakses kelas tunggal melalui aplikasi.

Singleton adalah sifat. Saat Anda menerapkan sifat ini, Anda memberi tahu aplikasi bahwa kelas apa pun yang dikirim sebagai parameter dalam aplikasi hanya boleh memiliki satu duplikat (contoh) di seluruh aplikasi. Ini berarti bahwa MyClass akan diselesaikan sekali dan hanya akan memiliki satu instance, yang dapat diakses menggunakan variabel my_class.

Metode boot()

Metode boot() memungkinkan Anda untuk mengakses semua layanan yang sebelumnya terdaftar menggunakan metode register. Dengan demikian Anda dapat memasukkan seluruh layanan ke dalam aplikasi Anda dengan menggunakan metode ini.

Metode booting

Metode boot-1

Bagaimana cara mendaftar penyedia layanan?

Karena Anda sekarang telah membangun penyedia layanan Anda, Anda harus mendaftarkannya di file konfigurasi Anda untuk menyelesaikan prosesnya. Anda harus mendaftar di sini dengan cara yang digambarkan pada gambar di bawah ini:

Cara mendaftar penyedia layanan

Semua penyedia layanan akan memuat terlebih dahulu setiap kali aplikasi dijalankan. Penyedia layanan adalah tempat sentral utama untuk aplikasi Laravel, dan mereka selalu ada untuk membantu Anda dalam menjalankan aplikasi lengkap, seperti yang telah dibahas sebelumnya di blog ini.

Apa itu wadah layanan di laravel?

Service Container adalah mekanisme yang kuat yang memungkinkan kita untuk menyimpan semua binding yang diperlukan untuk menjalankan aplikasi Laravel di satu server.

6 Prinsip pengembangan aplikasi web modern 2022

Segala sesuatu dalam aplikasi dapat diikat bersama dengan bantuan wadah layanan.

Bagaimana cara menggunakan wadah layanan di laravel?

Pertimbangkan skenario berikut: kami memiliki kelas bernama MathService yang bertanggung jawab untuk melakukan operasi dasar tertentu seperti penambahan, perkalian, dan sebagainya. Kode untuk kelas ini disediakan di bawah ini.

Cara menggunakan wadah layanan di laravel

Seperti yang Anda lihat di atas, ada dua metode untuk menghitung jumlah array angka menggunakan fungsi penjumlahan array dan mengalikan semua angka yang disediakan sebagai array menggunakan fungsi produk array.

Fungsi array sum menghitung jumlah array angka menggunakan fungsi array sum, sedangkan fungsi produk array mengalikan semua angka yang disediakan sebagai array.

Untuk menggunakan penyedia layanan, pertama-tama kita harus mengikat layanan ke wadah layanan.

Cara menggunakan wadah layanan di laravel-1

Namun, dengan melakukan itu, kami menginstruksikan Laravel untuk menyimpan wadah MathService dalam wadah dengan nama MathService dan mengembalikannya kapan pun kami membutuhkan instance kelas. Ini adalah pengikatan kelas satu kali, dan dapat digunakan untuk mendapatkan sejumlah instance dari program kami.

Cara menggunakan wadah layanan di laravel-2 Seperti yang dinyatakan sebelumnya, wadah dan penyedia layanan adalah komponen penting dari setiap aplikasi Laravel. Seperti yang dinyatakan sebelumnya, kami dapat merancang penyedia layanan unik kami sendiri atau kami dapat memasukkan penyedia layanan pihak ketiga ke dalam aplikasi kami.

Sebagai contoh, jika Anda ingin menggunakan sosialita di Laravel, Anda cukup menyalin dan menempelkannya ke file penyedia layanan aplikasi dan menggunakannya di mana saja di aplikasi Anda.

Menyimpulkannya

Saat mengonfigurasi aplikasi Anda, penyedia layanan digunakan. Selain binding container layanan, elemen kunci lainnya seperti route, middleware, dan event listener juga terdaftar di bagian file konfigurasi ini.

Penyedia layanan dilakukan sebelum permintaan itu sendiri diproses, memastikan bahwa semua yang Anda inginkan sudah ada dan diatur sebelum permintaan ditangani oleh sistem. Eksekusi beberapa penyedia layanan terjadi secara berkala sedangkan penyedia layanan lainnya hanya dilakukan pada saat diperlukan ("penyedia tertunda").

Saat Anda menggunakan wadah layanan, Anda dapat menggunakannya untuk injeksi ketergantungan (misalnya, injeksi parameter di kelas pengontrol Anda) serta kelas pengikatan dan resolusi (seperti kelas apa yang akan dipakai untuk kontrak tertentu).

Pengembangan web bisa menjadi proses yang sulit. Itulah sebabnya webdew memiliki tim pengembang web yang terampil untuk membantu membuat situs web dan aplikasi serta mempermudah Anda.

Butuh bantuan dengan desain web dan pengembangan web? Hubungi kami!

Editor: Amrutha