Header Ads

Header ADS

Laravel Service Provider

 Service Provider (সার্ভিস প্রোভাইডার) Laravel অ্যাপ্লিকেশনের বুটস্ট্র্যাপিং এবং কনফিগারেশনের মূল কেন্দ্র। এটি Laravel-এর সবচেয়ে শক্তিশালী ফিচারগুলোর মধ্যে একটি যা অ্যাপ্লিকেশনের বিভিন্ন কম্পোনেন্টস রেজিস্টার এবং ইনিশিয়ালাইজ করে।

সার্ভিস প্রোভাইডার কি?

Service Provider হলো PHP ক্লাস যা:

  • অ্যাপ্লিকেশন সেবা রেজিস্টার করে

  • কন্টেইনার বাইন্ডিং সেটআপ করে

  • রাউটস, ইভেন্টস, মিডলওয়্যার কনফিগার করে

  • ডিপেন্ডেন্সি ইনজেকশন ম্যানেজ করে

কেন এটি গুরুত্বপূর্ণ?

  1. মডুলারিটি: প্রতিটি ফিচার আলাদাভাবে ম্যানেজ করা যায়

  2. লেইজি লোডিং: শুধু প্রয়োজনীয় সার্ভিস লোড হয়

  3. কনফিগারেশন: কেন্দ্রীয়ভাবে সবকিছু কন্ট্রোল করা যায়

বেসিক স্ট্রাকচার

php
Copy
Download
<?php

namespace App\Providers;

use Illuminate\Support\ServiceProvider;

class ExampleServiceProvider extends ServiceProvider
{
    public function register()
    {
        // সার্ভিস রেজিস্ট্রেশন
    }

    public function boot()
    {
        // বুটিং লজিক
    }
}

প্রোভাইডার টাইপস

১. কোর প্রোভাইডার

php
Copy
Download
// AppServiceProvider.php
public function register()
{
    $this->app->singleton(Interface::class, Implementation::class);
}

২. ডিফার্ড প্রোভাইডার

php
Copy
Download
// config/app.php
'providers' => [
    App\Providers\CustomServiceProvider::class,
],

৩. প্যাকেজ প্রোভাইডার

php
Copy
Download
class PackageServiceProvider extends ServiceProvider {
    public function register() {
        $this->mergeConfigFrom(__DIR__.'/../config.php', 'package');
    }
}

রেজিস্ট্রেশন প্রক্রিয়া

  1. config/app.php-এ প্রোভাইডার লিস্ট করা হয়

  2. অ্যাপ্লিকেশন বুটস্ট্রাপিং সময় প্রোভাইডার লোড হয়

  3. register() মেথড কল হয় (সকল প্রোভাইডারের)

  4. boot() মেথড কল হয় (রেজিস্ট্রেশন পর)

বাস্তব উদাহরণ

ডাটাবেস কনফিগারেশন

php
Copy
Download
// AppServiceProvider.php
public function boot()
{
    Model::preventLazyLoading(! $this->app->isProduction());
}

ভিউ কম্পোজার

php
Copy
Download
public function boot()
{
    View::composer('profile', ProfileComposer::class);
}

প্রোভাইডার তৈরি

bash
Copy
Download
php artisan make:provider CustomServiceProvider
php
Copy
Download
// CustomServiceProvider.php
public function register()
{
    $this->app->bind(PaymentGateway::class, function ($app) {
        return new StripePayment(config('services.stripe.key'));
    });
}

গুরুত্বপূর্ণ মেথডসমূহ

মেথডবিবরণ
register()সার্ভিস রেজিস্ট্রেশন (কোন রুট/কন্ট্রোলার এক্সেস করবেন না)
boot()সকল রেজিস্ট্রেশন সম্পূর্ণ হওয়ার পর কল হয় (রুট/কন্ট্রোলার এক্সেস করুন)

বেস্ট প্র্যাকটিস

  1. register()-এ হেভি লজিক এড়িয়ে চলুন

  2. ইন্টারফেস বাইন্ডিং ব্যবহার করুন

  3. প্রোভাইডারকে থিন রাখুন

  4. ডিফার্ড প্রোভাইডার ব্যবহার করুন

Service Provider Laravel-এর হার্টবিট, যা অ্যাপ্লিকেশনের সকল কম্পোনেন্টসকে সংগঠিতভাবে কাজ করতে সাহায্য করে।

No comments

Theme images by fpm. Powered by Blogger.