Custom Middleware তৈরি করা

Phalcon এর Middleware এবং Filters - ফ্যালকন (Phalcon) - Web Development

263

Phalcon ফ্রেমওয়ার্কে Middleware এমন একটি কনসেপ্ট যা HTTP রিকোয়েস্ট এবং রেসপন্স প্রসেসের মধ্যে এক বা একাধিক স্টেপ যোগ করে। Middleware দিয়ে আপনি API বা ওয়েব অ্যাপ্লিকেশনে সাধারণ কাজগুলো যেমন অথেন্টিকেশন, লগিং, রেট লিমিটিং, বা ক্যাশিং ইত্যাদি ইমপ্লিমেন্ট করতে পারেন। Phalcon এর Middleware সিস্টেম কাস্টম লজিক অন্তর্ভুক্ত করার জন্য অত্যন্ত নমনীয় এবং শক্তিশালী।

Phalcon এ Middleware সাধারণত রিকোয়েস্টের প্রক্রিয়া সম্পাদন করার জন্য ব্যবহৃত হয়, তবে আপনি এটি রেসপন্স ম্যানিপুলেট করার জন্যও ব্যবহার করতে পারেন।

এখানে, আমরা দেখবো কিভাবে Phalcon ফ্রেমওয়ার্কে Custom Middleware তৈরি করা যায় এবং এটি কীভাবে কার্যকরীভাবে ব্যবহৃত হতে পারে।


Phalcon এ Custom Middleware তৈরি করার প্রক্রিয়া

Phalcon ফ্রেমওয়ার্কে Middleware তৈরির জন্য, আপনাকে Phalcon এর Middleware কম্পোনেন্ট ব্যবহার করতে হবে, যা Phalcon 5.x এ অন্তর্ভুক্ত করা হয়েছে। Middleware HTTP রিকোয়েস্ট প্রক্রিয়া করার জন্য রিকোয়েস্ট এবং রেসপন্সে নির্দিষ্ট লজিক যোগ করতে ব্যবহৃত হয়।

1. Phalcon Middleware সিস্টেম কনফিগার করা

Phalcon এ Middleware ব্যবহার করার জন্য, প্রথমে একটি কাস্টম Middleware ক্লাস তৈরি করতে হবে এবং তারপর তা অ্যাপ্লিকেশনের মধ্যে অন্তর্ভুক্ত করতে হবে। চলুন দেখি কীভাবে এটি করা হয়।

1.1 Middleware ক্লাস তৈরি করা

প্রথমে একটি কাস্টম Middleware ক্লাস তৈরি করা যাক যা একটি রিকোয়েস্ট লগ করবে এবং তারপর রেসপন্সে কিছু ডেটা যোগ করবে।

namespace App\Middleware;

use Phalcon\Mvc\Micro\MiddlewareInterface;
use Phalcon\Http\Request;
use Phalcon\Http\Response;

class LogRequestMiddleware implements MiddlewareInterface
{
    public function call(Request $request, Response $response)
    {
        // লগ ডেটা তৈরি করা
        $logData = [
            'method' => $request->getMethod(),
            'uri'    => $request->getURI(),
            'ip'     => $request->getClientAddress()
        ];

        // লগ ফাইলে ডেটা লিখুন (অথবা লোগিং সিস্টেমে পাঠান)
        error_log(json_encode($logData));

        // রিকোয়েস্টের পরবর্তী স্টেপে যাওয়ার জন্য রেসপন্স ফিরিয়ে দেয়া
        return true;
    }
}

এখানে, LogRequestMiddleware ক্লাসটি একটি কাস্টম Middleware যেটি ইনকামিং রিকোয়েস্টের মেথড, URI, এবং ক্লায়েন্ট আইপি লোগ করে এবং রিকোয়েস্টের প্রসেসিং চালিয়ে যেতে দেয়।

1.2 Middleware রেজিস্টার করা

Phalcon এ Middleware রেজিস্টার করার জন্য, অ্যাপ্লিকেশন ফাইলে add() মেথড ব্যবহার করা হয়।

use Phalcon\Mvc\Micro;
use App\Middleware\LogRequestMiddleware;

$app = new Micro();

// রেজিস্টার Middleware
$app->before(new LogRequestMiddleware());

// রুট সেটআপ
$app->get('/hello', function () {
    echo "Hello, Phalcon!";
});

$app->handle();

এখানে, before() মেথডে LogRequestMiddleware রেজিস্টার করা হয়েছে, যা রিকোয়েস্ট আসার আগে লোগিং করবে। Middleware প্রয়োগ করার পর, এটি অ্যাপ্লিকেশনের রাউট প্রসেসে সাহায্য করবে।


2. Middleware এ HTTP রেসপন্স ম্যানিপুলেশন

এছাড়া, আপনি Middleware ব্যবহার করে রেসপন্সও ম্যানিপুলেট করতে পারেন, যেমন রেসপন্সে ডেটা যোগ করা বা ক্যাশিং। এটি সাধারণত রেসপন্সের প্রক্রিয়া শেষ করার আগে কিছু কাজ করতে ব্যবহৃত হয়।

2.1 Response Manipulation Example

namespace App\Middleware;

use Phalcon\Mvc\Micro\MiddlewareInterface;
use Phalcon\Http\Request;
use Phalcon\Http\Response;

class AddCustomHeaderMiddleware implements MiddlewareInterface
{
    public function call(Request $request, Response $response)
    {
        // রেসপন্সে কাস্টম হেডার যোগ করা
        $response->setHeader("X-Custom-Header", "This is a custom header");
        
        // রিকোয়েস্ট প্রসেসিং চালিয়ে যাওয়া
        return true;
    }
}

এখানে, AddCustomHeaderMiddleware রেসপন্সে একটি কাস্টম হেডার যোগ করছে।

2.2 Middleware রেজিস্টার করা (Response Manipulation)

use Phalcon\Mvc\Micro;
use App\Middleware\AddCustomHeaderMiddleware;

$app = new Micro();

// রেজিস্টার Middleware
$app->after(new AddCustomHeaderMiddleware());

// রুট সেটআপ
$app->get('/hello', function () {
    echo "Hello, Phalcon!";
});

$app->handle();

এখানে, after() মেথডে AddCustomHeaderMiddleware রেজিস্টার করা হয়েছে, যা রেসপন্স হ্যান্ডলিং শেষে কাস্টম হেডার যোগ করবে।


3. Multiple Middleware রেজিস্টার করা

Phalcon এ আপনি একাধিক Middleware রেজিস্টার করতে পারেন, যা বিভিন্ন কাজ সম্পাদন করবে। উদাহরণস্বরূপ, একটি Middleware রিকোয়েস্ট লগিং করবে, অন্য একটি Middleware অথেন্টিকেশন করবে এবং আরেকটি Middleware রেসপন্স হেডার পরিবর্তন করবে।

use Phalcon\Mvc\Micro;
use App\Middleware\LogRequestMiddleware;
use App\Middleware\AddCustomHeaderMiddleware;

$app = new Micro();

// একাধিক Middleware রেজিস্টার করা
$app->before(new LogRequestMiddleware());
$app->after(new AddCustomHeaderMiddleware());

// রুট সেটআপ
$app->get('/hello', function () {
    echo "Hello, Phalcon!";
});

$app->handle();

এখানে, before() এবং after() মেথডে একাধিক Middleware রেজিস্টার করা হয়েছে, যা যথাক্রমে রিকোয়েস্ট এবং রেসপন্স প্রসেসিংয়ে সাহায্য করবে।


4. Middleware এর লাইফটাইম ও স্কোপ

Phalcon এ, Middleware এর লাইফটাইম এবং স্কোপ কাস্টমাইজ করা যায়। আপনি before বা after এর মাধ্যমে রিকোয়েস্টের পূর্বে বা পরবর্তী সময়ে Middleware প্রয়োগ করতে পারেন।

  • before(): রিকোয়েস্ট প্রক্রিয়ার শুরুতে Middleware চালানো হবে।
  • after(): রেসপন্স প্রক্রিয়ার শেষে Middleware চালানো হবে।

আপনি যদি কোনো নির্দিষ্ট রাউটে Middleware প্রয়োগ করতে চান, তবে সেই রাউটের জন্য add() মেথড ব্যবহার করতে পারেন।


সারাংশ

Phalcon ফ্রেমওয়ার্কে Custom Middleware তৈরি করা একটি শক্তিশালী এবং নমনীয় পদ্ধতি, যা API বা ওয়েব অ্যাপ্লিকেশনের বিভিন্ন কাজ যেমন লগিং, অথেন্টিকেশন, রেট লিমিটিং, ক্যাশিং ইত্যাদি পরিচালনা করতে সাহায্য করে। Phalcon এর Middleware সিস্টেম রিকোয়েস্ট এবং রেসপন্স প্রসেসের মধ্যে কাস্টম লজিক প্রয়োগ করতে সাহায্য করে, যা অ্যাপ্লিকেশনটির কার্যকারিতা এবং নিরাপত্তা বৃদ্ধি করে।

Content added By
Promotion

Are you sure to start over?

Loading...