Yii ফ্রেমওয়ার্কে Action Methods হল কন্ট্রোলারের ফাংশন যা HTTP রিকোয়েস্টের প্রেক্ষিতে নির্দিষ্ট কাজ সম্পন্ন করে এবং সাধারণত একটি রেসপন্স প্রদান করে। Action Methods এর মাধ্যমে আপনি বিভিন্ন ধরনের অ্যাকশন বা কাজ পরিচালনা করতে পারেন, যেমন ডেটা প্রদর্শন, ডেটাবেস থেকে তথ্য আনা, ফর্ম প্রসেস করা ইত্যাদি।
Yii ফ্রেমওয়ার্কে, Action Methods খুবই গুরুত্বপূর্ণ, কারণ এগুলোর মাধ্যমে ওয়েব অ্যাপ্লিকেশন ব্যবহারকারীর ইনপুট অনুযায়ী প্রতিক্রিয়া প্রদান করতে সক্ষম হয়। নিচে Yii ফ্রেমওয়ার্কের Action Methods এর বিভিন্ন দিক এবং তাদের ব্যবহার আলোচনা করা হলো।
১. Action Methods কী?
Action Methods হল কন্ট্রোলার ক্লাসের মেথড যেগুলি সাধারণত URL-এর মাধ্যমে অ্যাক্সেস করা হয় এবং ওয়েব পেজ রেন্ডার করার জন্য ব্যবহৃত হয়। Yii তে একটি কন্ট্রোলারের প্রতিটি মেথড একটি "অ্যাকশন" হিসেবে বিবেচিত হয়, এবং সেই অ্যাকশনটি সাধারণত URL এর সাথে সম্পর্কিত থাকে।
উদাহরণস্বরূপ:
যদি আপনার কন্ট্রোলারে একটি index() মেথড থাকে, তবে তা অ্যাকশন হিসেবে কাজ করবে এবং সাধারণত /site/index URL দিয়ে অ্যাক্সেস করা যাবে।
class SiteController extends \yii\web\Controller
{
public function actionIndex()
{
return $this->render('index');
}
}
এখানে, actionIndex() হলো একটি Action Method, যা /site/index URL এর মাধ্যমে কল করা যায়।
২. Action Methods তৈরি করা
Yii ফ্রেমওয়ার্কে নতুন Action Method তৈরি করতে কন্ট্রোলার ক্লাসে একটি পাবলিক ফাংশন যুক্ত করতে হয়। কন্ট্রোলার ক্লাসের প্রতিটি পাবলিক ফাংশন একটি অ্যাকশন হিসেবে কাজ করবে যদি ফাংশনের নামের আগে action শব্দটি থাকে।
উদাহরণ:
class PostController extends \yii\web\Controller
{
public function actionView($id)
{
$post = Post::findOne($id);
return $this->render('view', ['post' => $post]);
}
}
এখানে, actionView() হলো একটি Action Method যা পোস্টের বিস্তারিত দেখানোর জন্য কাজ করে।
৩. Action Methods এর রিটার্ন টাইপ
Action Methods সাধারণত তিন ধরনের রিটার্ন ভ্যালু দিতে পারে:
Render View: কন্ট্রোলার একটি ভিউ ফাইল রেন্ডার করে।
public function actionIndex() { return $this->render('index'); // 'index' ভিউ ফাইল রেন্ডার হবে }Redirect to Another Action or URL: রিডিরেক্ট অ্যাকশন বা URL এ পাঠানো।
public function actionRedirect() { return $this->redirect(['post/index']); // পোস্ট ইনডেক্স অ্যাকশনে রিডিরেক্ট }Plain Text or JSON Response: কোন টেক্সট বা JSON রেসপন্স প্রদান করা।
public function actionApiData() { return $this->asJson(['status' => 'success', 'data' => $data]); // JSON রেসপন্স }
৪. Action Method Parameters
Action Methods-এ প্যারামিটার পাঠানো সম্ভব। ইউআরএল-এ প্যারামিটার যুক্ত করে এগুলিকে Action Method-এ গ্রহণ করা যায়। উদাহরণস্বরূপ:
public function actionView($id)
{
$post = Post::findOne($id);
return $this->render('view', ['post' => $post]);
}
এখানে, actionView অ্যাকশনে $id প্যারামিটারটি URL থেকে গ্রহণ করা হয়। URL হতে $id প্যারামিটার নেওয়ার জন্য, আপনি URL-এর মতো কিছু ব্যবহার করবেন:
/post/view?id=1
এটি actionView মেথডে $id = 1 হিসেবে পৌঁছাবে।
৫. Action Methods-এর কাস্টমাইজেশন
Yii ফ্রেমওয়ার্কে Action Methods-কে কাস্টমাইজ করতে কিছু বিশেষ পদ্ধতি আছে:
Before and After Action Methods:
beforeAction()এবংafterAction()মেথডগুলি ব্যবহার করে অ্যাকশনের আগে বা পরে কিছু অতিরিক্ত কোড চালানো সম্ভব।
উদাহরণস্বরূপ:
class PostController extends \yii\web\Controller { public function beforeAction($action) { if (parent::beforeAction($action)) { // অ্যাকশন শুরু হওয়ার আগে কোড return true; } return false; } public function afterAction($action, $result) { // অ্যাকশন শেষ হওয়ার পরে কোড return parent::afterAction($action, $result); } }Access Control Filters (AccessControl):
- অ্যাকশনের আগে এক্সেস কন্ট্রোল করতে আপনি
AccessControlফিল্টার ব্যবহার করতে পারেন, যাতে নির্দিষ্ট অ্যাকশন শুধুমাত্র লগড-ইন ব্যবহারকারীর জন্য বা নির্দিষ্ট রোলের জন্য অ্যাক্সেসযোগ্য হয়।
উদাহরণ:
public function behaviors() { return [ 'access' => [ 'class' => \yii\filters\AccessControl::class, 'rules' => [ [ 'allow' => true, 'actions' => ['index'], 'roles' => ['@'], // লগড-ইন ইউজারদের জন্য ], [ 'allow' => true, 'actions' => ['view'], 'roles' => ['?'], // অননুমোদিত ব্যবহারকারীদের জন্য ], ], ], ]; }- অ্যাকশনের আগে এক্সেস কন্ট্রোল করতে আপনি
৬. Built-in Actions
Yii ফ্রেমওয়ার্কে কিছু বিল্ট-ইন অ্যাকশন রয়েছে যেগুলি আপনি সরাসরি ব্যবহার করতে পারেন:
index(): সাধারণত অ্যাপ্লিকেশনের হোমপেজ বা ইনডেক্স পেজ রেন্ডার করার জন্য ব্যবহৃত হয়।view(): সাধারণত একটি নির্দিষ্ট রেকর্ড (যেমন ব্লগ পোস্ট) দেখানোর জন্য ব্যবহৃত হয়।create(): একটি নতুন রেকর্ড তৈরি করতে ব্যবহৃত হয়।update(): একটি রেকর্ড আপডেট করতে ব্যবহৃত হয়।delete(): একটি রেকর্ড মুছে ফেলার জন্য ব্যবহৃত হয়।
সারাংশ
Yii ফ্রেমওয়ার্কে Action Methods কন্ট্রোলারের গুরুত্বপূর্ণ অংশ, যা ইউআরএল রিকোয়েস্ট অনুযায়ী বিভিন্ন কাজ সম্পাদন করে। Action Methods সহজেই তৈরি এবং কাস্টমাইজ করা যায়, এবং এগুলির মাধ্যমে আপনি অ্যাপ্লিকেশনের বিভিন্ন কার্যাবলী যেমন ডেটা ভিউ, রিডিরেকশন, ফর্ম প্রসেসিং ইত্যাদি পরিচালনা করতে পারেন। এছাড়া beforeAction() এবং afterAction() মেথড ব্যবহার করে অ্যাকশনের আগে বা পরে অতিরিক্ত কোড এক্সিকিউট করা যায়।
Read more