Yii ফ্রেমওয়ার্কে Controller এবং Action একটি অ্যাপ্লিকেশনের গুরুত্বপূর্ণ অংশ, যা ইউজারের রিকোয়েস্ট অনুযায়ী সঠিক লজিক এক্সিকিউট করে। Yii 2 এবং Yii 3 উভয়েই কাস্টম Controller এবং Action তৈরি করার সুবিধা দেয়, তবে Yii 3 কিছু নতুন কাঠামো নিয়ে এসেছে। এই গাইডে Yii 2 ফ্রেমওয়ার্কের কাস্টম Controller এবং Action তৈরি করার প্রক্রিয়া ব্যাখ্যা করা হবে।
১. Yii 2-এ কাস্টম Controller তৈরি করা
Yii 2 ফ্রেমওয়ার্কে কাস্টম Controller তৈরি করতে, আপনি সাধারণত controllers/ ডিরেক্টরির মধ্যে একটি নতুন PHP ফাইল তৈরি করবেন। এই কন্ট্রোলার ক্লাসটি Yii 2 এর yii\base\Controller ক্লাস থেকে ইনহেরিট করবে।
কাস্টম Controller তৈরি করার স্টেপ:
Controller ফাইল তৈরি করুন:
প্রথমে, আপনার অ্যাপ্লিকেশন এর
controllers/ডিরেক্টরিতে একটি নতুন কন্ট্রোলার ফাইল তৈরি করুন। উদাহরণস্বরূপ, আমরা একটিSiteController.phpতৈরি করতে যাচ্ছি।controllers/SiteController.php:<?php namespace app\controllers; use Yii; use yii\web\Controller; class SiteController extends Controller { // Default action, used when no specific action is provided in the URL public function actionIndex() { return $this->render('index'); // renders views/site/index.php } // A custom action to display the About page public function actionAbout() { return $this->render('about'); // renders views/site/about.php } }এখানে,
SiteControllerক্লাসটিyii\web\Controllerথেকে ইনহেরিট করা হয়েছে।actionIndex()এবংactionAbout()দুটি কাস্টম অ্যাকশন তৈরি করা হয়েছে।Views তৈরি করুন:
কন্ট্রোলারের অ্যাকশন থেকে রেন্ডার করা ভিউ ফাইল তৈরি করুন।
views/site/index.php:<h1>Welcome to Yii Framework!</h1>views/site/about.php:<h1>About Us</h1> <p>This is the About page.</p>
রাউটিং:
Yii 2 স্বয়ংক্রিয়ভাবে URL রাউটিং সিস্টেমের মাধ্যমে কন্ট্রোলার এবং অ্যাকশনটি খুঁজে নেবে। আপনি যদি ব্রাউজারে
http://localhost:8080/index.php?r=site/indexURL যান, তাহলেSiteControllerএরactionIndex()অ্যাকশনটি রেন্ডার হবে।http://localhost:8080/index.php?r=site/aboutURL এ গেলেSiteControllerএরactionAbout()অ্যাকশনটি রেন্ডার হবে।
২. কাস্টম Action তৈরি করা
Yii 2 তে Action এমন একটি ফাংশন যা নির্দিষ্ট কন্ট্রোলারের মধ্যে থাকে এবং নির্দিষ্ট রিকোয়েস্টের জন্য রেসপন্স প্রদান করে। সাধারণভাবে, action শব্দটি অ্যাকশনের নামের পূর্বে ব্যবহার করা হয়। যেমন, actionIndex(), actionAbout() ইত্যাদি।
কাস্টম Action তৈরি করার উদাহরণ:
Action ক্লাস তৈরি করুন:
যদি আপনি আরও কাস্টম একশন ব্যবহার করতে চান, তবে আপনি কাস্টম Action ক্লাসও তৈরি করতে পারেন। উদাহরণস্বরূপ, একটি কাস্টম অ্যাকশন তৈরি করা যেতে পারে যা ডাটাবেস থেকে ডেটা নিয়ে আসবে।
controllers/SiteController.php:public function actionData() { // Fetch data from the database $data = Yii::$app->db->createCommand('SELECT * FROM table_name')->queryAll(); // Render the data in a view return $this->render('data', ['data' => $data]); }Views ফাইল তৈরি করুন:
views/site/data.phpফাইল তৈরি করে ডেটা ভিউয়ে প্রদর্শন করতে হবে।<h1>Data from Database</h1> <table> <tr> <th>Column 1</th> <th>Column 2</th> </tr> <?php foreach ($data as $item): ?> <tr> <td><?= $item['column1']; ?></td> <td><?= $item['column2']; ?></td> </tr> <?php endforeach; ?> </table>এখন, আপনি
http://localhost:8080/index.php?r=site/dataURL এ গিয়ে আপনার ডেটাবেস থেকে আনা ডেটা দেখতে পারবেন।
৩. Yii 3-এ কাস্টম Controller এবং Action তৈরি করা
Yii 3 এখনও উন্নয়ন পর্যায়ে রয়েছে, এবং এর স্ট্রাকচার Yii 2 থেকে কিছুটা আলাদা। Yii 3 এ কাস্টম Controller এবং Action তৈরি করার জন্য একটি মডিউল ভিত্তিক আর্কিটেকচার অনুসরণ করা হয়।
Yii 3-এ কাস্টম Controller তৈরি:
Controller তৈরি করুন:
Yii 3 তে, কন্ট্রোলার তৈরি করতে আপনাকে
src/Controllerডিরেক্টরির মধ্যে কন্ট্রোলার ক্লাস ফাইল তৈরি করতে হবে।উদাহরণস্বরূপ, একটি
SiteController.php:namespace app\controllers; use Yiisoft\Controller\Controller; class SiteController extends Controller { public function actionIndex() { return $this->render('index'); // renders views/site/index.php } }Action তৈরি করুন:
Yii 3 তে, কাস্টম অ্যাকশনগুলো কন্ট্রোলার মেথড হিসেবে থাকে। এই মেথডগুলো URL রিকোয়েস্ট অনুযায়ী ট্রিগার হয়।
actionIndex()মেথডে ভিউ ফাইল রেন্ডার করা হচ্ছে। তবে Yii 3 তে এই মেথড গুলি আলাদা মডিউল ভিত্তিক কাঠামোতে থাকতে পারে।
সারাংশ
Yii ফ্রেমওয়ার্কে কাস্টম Controller এবং Action তৈরি করা সহজ এবং নমনীয়। Yii 2 তে কন্ট্রোলার তৈরি করতে yii\web\Controller ক্লাস থেকে ইনহেরিট করা হয় এবং প্রতিটি অ্যাকশন একটি মেথড হিসেবে ডিফাইন করা হয়। Yii 3 তে আর্কিটেকচার কিছুটা আলাদা হলেও, এখানে কন্ট্রোলার এবং অ্যাকশন মডিউল ভিত্তিক কাঠামোতে থাকে। Yii 2 এবং Yii 3 উভয়েই কাস্টম অ্যাকশন ও কন্ট্রোলার তৈরি করার জন্য শক্তিশালী ও ফ্লেক্সিবল ফিচার প্রদান করে।
Read more