FuelPHP একটি জনপ্রিয় PHP ফ্রেমওয়ার্ক যা MVC (Model-View-Controller) আর্কিটেকচার অনুসরণ করে এবং এটি বিভিন্ন শক্তিশালী বৈশিষ্ট্য প্রদান করে। এর মধ্যে একটি গুরুত্বপূর্ণ বৈশিষ্ট্য হলো Routing সিস্টেম, যা ওয়েব অ্যাপ্লিকেশনগুলিতে ইউআরএল রিকোয়েস্টগুলি সঠিক কন্ট্রোলার এবং অ্যাকশন মেথডে রিডাইরেক্ট করে। FuelPHP এর Routing সিস্টেম অত্যন্ত নমনীয় এবং এটি কাস্টম রুলস এবং ডাইনামিক রাউটিং সাপোর্ট করে।
FuelPHP Routing সিস্টেম
FuelPHP-এর রাউটিং সিস্টেম কিভাবে কাজ করে এবং এটি কিভাবে কনফিগার করা যায়, তার বিস্তারিত ব্যাখ্যা নিচে দেওয়া হলো।
1. Routing এর ধারণা:
রাউটিং হলো ওয়েব অ্যাপ্লিকেশনের ইউআরএল পাথের সাথে কন্ট্রোলার এবং অ্যাকশন মেথডের মধ্যে সম্পর্ক স্থাপন করার প্রক্রিয়া। FuelPHP এ রাউটিং সিস্টেম HTTP রিকোয়েস্টগুলিকে প্রক্রিয়ার মাধ্যমে সঠিক কন্ট্রোলার এবং অ্যাকশন মেথডে ম্যাপ করে।
- Basic Routing: সিম্পল রাউটিং যেখানে URL কে নির্দিষ্ট কন্ট্রোলার এবং অ্যাকশন মেথডে ম্যাপ করা হয়।
- Dynamic Routing: যেখানে URL প্যারামিটার ব্যবহার করে রাউটিং ডায়নামিকভাবে সেট করা হয়।
- Named Routing: ইউআরএল-এর নামের মাধ্যমে রাউটিং করা।
- RESTful Routing: যখন RESTful ওয়েব সেবার মত রাউটিং তৈরি করতে হয়।
2. Basic Routing (সাধারণ রাউটিং):
FuelPHP এর রাউটিং কনফিগারেশন ফাইল app/config/routes.php ফাইলে থাকে। এখানে আপনি আপনার অ্যাপ্লিকেশনের রাউটিং নির্ধারণ করতে পারেন।
উদাহরণ:
return array(
'_root_' => 'welcome/index', // Default route
'hello(/:name)?' => 'welcome/hello', // Named route with optional parameters
);
এখানে:
_root_হলো ডিফল্ট রুট, যা অ্যাপ্লিকেশন লোড করার সময় প্রথমে হিট হবে (অর্থাৎ, যখন/ইউআরএল ঢোকানো হবে)।hello(/:name)?: এই রাউটিং নিয়মে একটি অপশনাল প্যারামিটারnameরয়েছে, অর্থাৎ আপনি/helloবা/hello/yournameউভয় ক্ষেত্রেই এপ্লিকেশন অ্যাক্সেস করতে পারবেন।
3. Dynamic Routing (ডায়নামিক রাউটিং):
FuelPHP রাউটিং সিস্টেমে ডায়নামিক রাউটিং সাপোর্ট করা হয়, যার মাধ্যমে URL প্যারামিটার ব্যবহারের মাধ্যমে রাউটিং করা সম্ভব। অর্থাৎ, URL পাথের অংশ হিসেবে ডেটা গ্রহণ করা হয়।
উদাহরণ:
return array(
'user/(:num)' => 'user/profile/$1', // dynamic routing with number parameter
);
এখানে:
(:num): এটি URL-এ সংখ্যার জন্য প্যারামিটার নিবে। যেমন,user/10ইউআরএলটিuser/profile/10কন্ট্রোলারের মেথডে রিডাইরেক্ট করবে।
4. Named Routing (নামকৃত রাউটিং):
FuelPHP-তে আপনি named routes ব্যবহার করতে পারেন, যেখানে আপনি একটি নির্দিষ্ট রাউটকে একটি নাম দিয়ে সেট করতে পারেন এবং পরবর্তীতে সেই নাম ব্যবহার করে রাউট রেফারেন্স করতে পারবেন।
উদাহরণ:
return array(
'user/view/(:num)' => array('name' => 'view_user', 'action' => 'view'),
);
// Accessing named route in the application:
$url = Uri::create('view_user/123'); // generates URL for user/view/123
এখানে:
- রাউটটি একটি নাম
view_userদেওয়া হয়েছে, এবং এই নাম দিয়ে পরবর্তীতে ইউআরএল তৈরি করা সম্ভব।
5. RESTful Routing (RESTful রাউটিং):
FuelPHP রাউটিং সিস্টেম RESTful রাউটিং সাপোর্ট করে, যেখানে URL এর প্যাটার্ন HTTP মেথডের সাথে সম্পর্কিত থাকে (যেমন GET, POST, PUT, DELETE)। এর মাধ্যমে আপনি RESTful ওয়েব সেবার মতো ডাইনামিক ওয়েব অ্যাপ্লিকেশন তৈরি করতে পারেন।
RESTful Routing এর উদাহরণ:
return array(
'api/v1/users/(:num)' => array('controller' => 'users', 'action' => 'get', 'params' => array('id' => ':num')),
);
এখানে:
GET api/v1/users/:numএর মাধ্যমে আপনি ইউজারদের তথ্য রিটার্ন করতে পারবেন।- এই রাউটটি একটি GET রিকোয়েস্ট গ্রহণ করবে এবং
usersকন্ট্রোলারেরgetঅ্যাকশন মেথডে পাঠাবে, যেখানে:numপ্যারামিটার হিসেবে ব্যবহার হবে।
6. Route Parameters (রাউট প্যারামিটার):
FuelPHP রাউটিং সিস্টেমে URL থেকে প্যারামিটার গ্রহণ করা এবং সেগুলো কন্ট্রোলার বা অ্যাকশনে পাস করা যেতে পারে। FuelPHP বিভিন্ন ধরনের প্যারামিটার সাপোর্ট করে:
(:any): যেকোনো ভ্যালু(:num): শুধু সংখ্যা(:alpha): শুধুমাত্র অক্ষর(:alphanum): অক্ষর অথবা সংখ্যা
উদাহরণ:
return array(
'product/(:num)/(:any)' => 'product/view/$1/$2', // Dynamic parameters
);
এখানে, (:num) প্যারামিটার শুধুমাত্র সংখ্যা গ্রহণ করবে এবং (:any) প্যারামিটার যেকোনো ধরনের স্ট্রিং গ্রহণ করবে।
7. Redirects (রিডাইরেক্ট):
FuelPHP রাউটিং সিস্টেমে আপনি একটি ইউআরএল থেকে অন্য ইউআরএলে রিডাইরেক্ট করতে পারেন। এটি Redirect ক্লাস ব্যবহার করে করা হয়।
উদাহরণ:
Route::set('old-url', 'old-url/(:any)')
->defaults(array(
'controller' => 'redirect',
'action' => 'index',
));
Redirect::to('new-url'); // Redirect from old-url to new-url
8. HTTP Method Based Routing (HTTP মেথড ভিত্তিক রাউটিং):
FuelPHP HTTP রিকোয়েস্টের মেথডের উপর ভিত্তি করে রাউটিং সেটআপ করতে পারে। এর মাধ্যমে GET, POST, PUT, DELETE রিকোয়েস্ট আলাদা আলাদা কন্ট্রোলার বা অ্যাকশনে ম্যাপ করা সম্ভব।
উদাহরণ:
Route::post('product/create', 'product/create');
Route::get('product/view/(:num)', 'product/view');
এখানে, POST এবং GET রিকোয়েস্টগুলোর জন্য আলাদা আলাদা রাউটিং করা হয়েছে।
FuelPHP এর রাউটিং সিস্টেম অত্যন্ত নমনীয় এবং শক্তিশালী। আপনি সহজে এবং কার্যকরভাবে রাউটিং কনফিগার করতে পারেন, যা বিভিন্ন ওয়েব অ্যাপ্লিকেশন ডিজাইনে কাজে আসবে। FuelPHP এর dynamic routing, named routes, RESTful routing, এবং parameterized routing এর মাধ্যমে ওয়েব ডেভেলপাররা আরও ফ্লেক্সিবল এবং স্কেলেবল অ্যাপ্লিকেশন তৈরি করতে পারেন।
Read more