Dev to webs {Coding…}

บทเรียนฟรีด้านการพัฒนาซอฟต์แวร์ ที่ครอบคลุมเนื้อหาหลากหลาย ตั้งแต่การเขียนโค้ดพื้นฐานไปจนถึงเทคนิคขั้นสูง

บทที่ 4: การสร้าง Service Provider

🔹 เกริ่นนำ

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