FuelPHP একটি শক্তিশালী PHP framework যা MVC (Model-View-Controller) এবং HMVC (Hierarchical Model-View-Controller) আর্কিটেকচার ব্যবহার করে ওয়েব অ্যাপ্লিকেশন তৈরি করতে সহায়তা করে। Controller হল অ্যাপ্লিকেশনের লজিক্যাল অংশ, যা Model এবং View এর মধ্যে যোগাযোগ স্থাপন করে। Controller বিভিন্ন action এর মাধ্যমে ব্যবহারকারীর অনুরোধের প্রক্রিয়া পরিচালনা করে।
এখানে FuelPHP Controller তৈরি এবং এর বিভিন্ন Action তৈরি করার পদ্ধতি আলোচনা করা হবে।
1. FuelPHP Controller তৈরি করা:
FuelPHP তে কন্ট্রোলার তৈরি করতে হলে, আপনাকে /app/classes/controller/ ডিরেক্টরির মধ্যে একটি কন্ট্রোলার ক্লাস ফাইল তৈরি করতে হবে। কন্ট্রোলারের নাম সাধারনত Controller_ দিয়ে শুরু হয় এবং এর পরে আপনার কন্ট্রোলারের নাম আসে। উদাহরণস্বরূপ, Controller_Welcome.php।
Controller তৈরি করার উদাহরণ:
ধরা যাক, আপনি একটি WelcomeController তৈরি করতে চান, যা একটি সাদামাটা হ্যালো বার্তা প্রদর্শন করবে।
- Controller ক্লাস তৈরি করা:
app/classes/controller/welcome.php ফাইলটি তৈরি করুন।
<?php
class Controller_Welcome extends Controller
{
// action_index: Default action
public function action_index()
{
// Pass data to the view
$data['message'] = 'Welcome to FuelPHP!';
return Response::forge(View::forge('welcome/index', $data));
}
// action_about: Additional action
public function action_about()
{
// Pass data to the view
$data['message'] = 'This is the About page!';
return Response::forge(View::forge('welcome/about', $data));
}
}
এখানে:
Controller_Welcome: এটি আপনার কন্ট্রোলার ক্লাস।action_index(): এটি কন্ট্রোলারের ডিফল্ট অ্যাকশন, যাwelcome/indexরাউট দ্বারা কল করা হবে।action_about(): এটি একটি অতিরিক্ত অ্যাকশন যাwelcome/aboutরাউট দ্বারা কল করা হবে।Response::forge(View::forge('welcome/index', $data)): এই লাইনটি View রেন্ডার করে, যেখানেwelcome/indexভিউতে$dataপ্যারামিটার পাস করা হচ্ছে।
2. Action Method:
FuelPHP তে একটি কন্ট্রোলারে action method গুলি হল সেই ফাংশন যা URL রাউটিংয়ের মাধ্যমে কল করা হয়। প্রতিটি action method সাধারণত public হয়ে থাকে এবং এই ফাংশনগুলি সাধারণত HTTP রিকোয়েস্ট (GET, POST) এর ভিত্তিতে কোনো নির্দিষ্ট কাজ করে।
উদাহরণ:
// action_index: Default action for the controller
public function action_index()
{
return 'Hello, this is the index page!';
}
// action_show: Shows a specific page
public function action_show($page = 'home')
{
return 'Showing page: ' . $page;
}
// action_create: Handles POST request to create data
public function action_create()
{
if (Input::method() == 'POST') {
// process form input
$name = Input::post('name');
return 'Name received: ' . $name;
}
return View::forge('form'); // show form view
}
3. Routing এবং Action Mapping:
FuelPHP তে routes কনফিগারেশন ফাইলের মাধ্যমে অ্যাকশন এবং URL এর মধ্যে সম্পর্ক স্থাপন করা হয়। ডিফল্টভাবে, routes.php ফাইলে '_root_' => 'welcome/index' এই রাউট সেট করা থাকে, যার মাধ্যমে / (রুট পেজ) Controller_Welcome এর action_index() অ্যাকশনকে কল করবে।
Route Configuration:
ফুয়েলপিএইচপিতে রাউটিং কনফিগার করতে /app/config/routes.php ফাইলে এভাবে যুক্ত করা যায়:
return array(
'_root_' => 'welcome/index', // Default route
'about' => 'welcome/about', // 'about' URL will map to 'action_about'
'show/(:any)' => 'welcome/show/$1', // Dynamic parameter passing
'create' => 'welcome/create', // 'create' URL will map to 'action_create'
);
4. View তৈরি করা:
View হল ইউজার ইন্টারফেস (UI), যা কন্ট্রোলার থেকে পাস করা ডেটা রেন্ডার করে ব্যবহারকারীকে দেখানো হয়। FuelPHP তে View এর মাধ্যমে HTML কন্টেন্ট তৈরি করা হয়।
উদাহরণ:
ধরা যাক, আপনি welcome/index.php এবং welcome/about.php ভিউ তৈরি করবেন যা কন্ট্রোলার থেকে পাস করা ডেটা দেখাবে।
app/views/welcome/index.php:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>FuelPHP Welcome</title>
</head>
<body>
<h1><?php echo $message; ?></h1>
</body>
</html>
app/views/welcome/about.php:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>About Us</title>
</head>
<body>
<h1><?php echo $message; ?></h1>
<p>This is the About page of our FuelPHP app.</p>
</body>
</html>
5. Controller এবং View এর মধ্যে ডেটা পাস করা:
FuelPHP তে কন্ট্রোলার থেকে View তে ডেটা পাস করার জন্য View::forge() ব্যবহার করা হয়। উদাহরণস্বরূপ, welcome/index ভিউতে একটি $message ভ্যারিয়েবল পাস করা হচ্ছে।
$data['message'] = 'Hello, Welcome to FuelPHP!';
return Response::forge(View::forge('welcome/index', $data));
এখানে, $data['message'] ভ্যারিয়েবলটি View ফাইলে পাঠানো হয়েছে এবং সেখানে এটি <?php echo $message; ?> দিয়ে রেন্ডার হবে।
6. HTTP Method Handling (GET, POST):
FuelPHP তে GET এবং POST রিকোয়েস্ট হ্যান্ডলিং খুবই সহজ। যদি আপনি একটি ফর্ম প্রক্রিয়া করতে চান, তাহলে POST রিকোয়েস্ট ব্যবহার করে তা সহজেই করা যায়।
উদাহরণ:
public function action_create()
{
if (Input::method() == 'POST') {
$name = Input::post('name');
return 'Name received: ' . $name;
}
return View::forge('form'); // show form view
}
এখানে, Input::method() ব্যবহার করে চেক করা হচ্ছে যে, রিকোয়েস্ট টাইপ POST কিনা, তারপর ফর্মের ইনপুট Input::post() দিয়ে গ্রহণ করা হচ্ছে।
সারাংশ:
- Controller FuelPHP তে অ্যাপ্লিকেশনের লজিক্যাল অংশ এবং ব্যবহারকারী অনুরোধের প্রক্রিয়া পরিচালনা করে।
- Action হলো Controller-এ নির্দিষ্ট কাজ পরিচালনা করার জন্য ব্যবহৃত ফাংশন। প্রতিটি action method URL রাউটিংয়ের মাধ্যমে কল করা হয়।
- Views হল ইউজার ইন্টারফেস (UI), যা কন্ট্রোলার থেকে প্রাপ্ত ডেটা ব্যবহার করে HTML রেন্ডার করে।
- Routing FuelPHP তে URL এবং Controller এর মধ্যে সম্পর্ক স্থাপন করার জন্য ব্যবহৃত হয়।
এই উপাদানগুলোকে একসাথে ব্যবহার করে আপনি একটি সম্পূর্ণ FuelPHP অ্যাপ্লিকেশন তৈরি করতে পারবেন, যেখানে কন্ট্রোলার, অ্যাকশন এবং ভিউগুলির মধ্যে সঠিক যোগাযোগ ও কার্যকারিতা রয়েছে।
Read more