🔹 เกริ่นนำ
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 สำหรับลงทะเบียนทุกอย่างให้พร้อมใช้งาน