🔹 เกริ่นนำ
Service Provider คือ class สำคัญใน Laravel ที่ใช้ลงทะเบียน service, binding ต่าง ๆ เข้ากับ Service Container และกำหนดการโหลด resource เช่น config, view, migration และ route ต่าง ๆ เมื่อ Laravel เริ่มทำงาน Service Provider จะถูกเรียกใช้งานอัตโนมัติตามที่กำหนดใน config/app.php
บทนี้จะแสดงวิธีการสร้าง Service Provider และการลงทะเบียนใช้งานอย่างถูกต้อง
🔸 สร้าง Service Provider
php artisan make:provider CustomServiceProvider
จะได้ไฟล์ app/Providers/CustomServiceProvider.php
🔸 ตัวอย่างโครงสร้าง Service Provider
namespace App\Providers; use Illuminate\Support\ServiceProvider; use App\Services\ReportService; class CustomServiceProvider extends ServiceProvider { public function register() { $this->app->bind('report', function ($app) { return new ReportService(); }); } public function boot() { // โหลด config, route, หรือ publish resource ได้ที่นี่ } }
🔸 การลงทะเบียน Service Provider
เปิด config/app.php
และเพิ่มใน array:
'providers' => [
...
App\Providers\CustomServiceProvider::class,
],
🔸 ตัวอย่างการใช้งาน
$report = app('report');
$report->generate();
💡 หากคุณเขียน package เอง ให้ใช้ ServiceProvider สำหรับลงทะเบียนทุกอย่างให้พร้อมใช้งาน