Laravel ialah rangka kerja pembangunan web PHP yang popular, dan bekas perkhidmatannya ialah salah satu konsep terpentingnya. Bekas perkhidmatan menjadikan aplikasi Laravel lebih mudah untuk skala dan penyelenggaraan. Artikel ini akan menerangkan cara membuat dan menggunakan bekas perkhidmatan dalam Laravel, dan cara menggunakannya dalam kod.
Pengenalan kepada bekas perkhidmatan
Bekas perkhidmatan ialah salah satu komponen teras Laravel Ia bertanggungjawab untuk mengurus kebergantungan dan instantiasi semua kelas dalam aplikasi. Dalam Laravel, bekas perkhidmatan menggunakan corak bekas kawalan terbalik untuk mengurus objek dan kebergantungan di antara mereka. Apabila aplikasi meminta kelas, bekas perkhidmatan menyemak pembina kelas dan memuatkan objek operasi yang diperlukan berdasarkan keperluan ini.
Bekas perkhidmatan boleh berfungsi dengan hampir semua objek, termasuk pengawal, model, paparan, permintaan dan respons serta banyak lagi. Dalam aplikasi Laravel, bekas perkhidmatan boleh menggunakan suntikan kebergantungan untuk menyelesaikan kebergantungan antara kelas. Apabila anda perlu menggunakan kelas untuk mengendalikan tugas, bekas perkhidmatan secara automatik akan menyemak pembina kelas dan secara automatik mencipta kebergantungan yang diperlukannya.
Mengapa menggunakan bekas perkhidmatan?
Bekas perkhidmatan sangat penting dalam aplikasi moden kerana ia membolehkan anda mengurus kebergantungan antara kelas dengan lebih mudah dan meningkatkan fleksibiliti dan kebolehselenggaraan kod. Jika terdapat berbilang kelas dalam aplikasi anda, dan sebahagian daripadanya bergantung pada kelas lain, bekas perkhidmatan boleh menyelesaikan pergantungan ini secara automatik, menjadikan kod anda lebih modular dan boleh diuji.
Tanpa bekas perkhidmatan, anda mungkin perlu membuat instantiate kelas dan objek secara manual di sesetengah tempat dan menghantarnya ke kelas lain yang memerlukan kebergantungan. Masalah dengan ini ialah anda akhirnya mendapati bahawa kod anda menjadi agak longgar dan sukar untuk dikekalkan dan diuji. Bekas perkhidmatan boleh membantu anda mengelakkan situasi ini.
Penciptaan bekas perkhidmatan
Dalam Laravel, mencipta bekas perkhidmatan ialah proses yang agak mudah. Secara lalai, bekas perkhidmatan dalam aplikasi Laravel diprakonfigurasikan. Apabila anda mencipta aplikasi Laravel baharu, anda boleh menambah pembekal perkhidmatan anda sendiri pada bekas perkhidmatan rangka kerja Laravel.
Pembekal perkhidmatan ialah jenis kelas khas yang menambahkan satu atau lebih perkhidmatan pada bekas perkhidmatan. Setiap pembekal perkhidmatan mempunyai dua kaedah yang mesti dilaksanakan: register() dan boot().
kaedah register() digunakan untuk mengkonfigurasi bekas perkhidmatan. Dalam kaedah ini, anda boleh mendaftar perkhidmatan dengan Laravel atau perkhidmatan anda sendiri dan kemudian menggunakannya di tempat lain dalam aplikasi.
Kaedah but() adalah pilihan. Dalam kaedah ini, anda boleh melakukan konfigurasi global aplikasi Laravel, seperti mendaftarkan laluan, mendaftarkan acara dan pendengar, dsb.
Mari kita lihat contoh mudah. Katakan kita mempunyai kelas perkhidmatan yang dipanggil UserService yang bergantung pada kelas repositori yang dipanggil UserRepository. Kami perlu mendaftarkan UserService dan UserRepository ke dalam bekas perkhidmatan Laravel dan menggunakannya dalam kod kami menggunakan suntikan kebergantungan.
Pertama, kita perlu mencipta kelas pembekal perkhidmatan untuk UserService dan UserRepository. Buat kelas bernama UserServiceServiceProvider dalam direktori app/Providers, yang mewarisi ServiceProvide.
ruang nama AppProviders;
gunakan IlluminateSupportServiceProvider;
gunakan AppRepositoriesUserRepository;
gunakan AppServicesUserService;
Extended Service
public function register() { $this->app->bind(UserService::class, function ($app) { return new UserService($app->make(UserRepository::class)); }); $this->app->bind(UserRepository::class, function ($app) { return new UserRepository(); }); }
AppProvidersUserServiceServiceProvider::class,
{
protected $userService; public function __construct(UserService $userService) { $this->userService = $userService; } public function index() { $users = $this->userService->getAllUsers(); return view('users.index', compact('users')); }
Atas ialah kandungan terperinci Bagaimana untuk membuat bekas perkhidmatan dalam laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!