Controller কী এবং এর ভূমিকা

কন্ট্রোলারস এবং অ্যাকশনস - জী ফ্রেমওয়ার্ক (Yii Framework) - Web Development

268

Yii ফ্রেমওয়ার্কের Controller একটি গুরুত্বপূর্ণ উপাদান যা অ্যাপ্লিকেশনের লজিক এবং ইউজারের রিকোয়েস্টের মধ্যে মধ্যস্থতা করে। এটি মডেল এবং ভিউ এর মধ্যে যোগাযোগ স্থাপন করে, এবং ইউজারের রিকোয়েস্ট অনুযায়ী ডেটা প্রক্রিয়া বা ফাংশন এক্সিকিউট করে।


Controller কী?

Controller (কন্ট্রোলার) হল একটি ক্লাস যা অ্যাপ্লিকেশনের কার্যকারিতা (business logic) বা লজিক্যাল প্রক্রিয়া পরিচালনা করে। এটি ইউজারের রিকোয়েস্ট (যেমন একটি URL বা HTTP রিকোয়েস্ট) গ্রহণ করে এবং সেই অনুযায়ী উপযুক্ত অ্যাকশন (action) বা কার্যক্রম গ্রহণ করে।

Yii ফ্রেমওয়ার্কে কন্ট্রোলার একটি PHP ক্লাস হিসেবে তৈরি হয় যা yii\base\Controller ক্লাস থেকে এক্সটেন্ড করা হয়। কন্ট্রোলার ক্লাসে এক বা একাধিক অ্যাকশন থাকে, যা বিভিন্ন ইউজার ইন্টারঅ্যাকশন হ্যান্ডেল করে।


Controller এর ভূমিকা

Yii ফ্রেমওয়ার্কে কন্ট্রোলারের মূল ভূমিকা হল:

  1. ইউজারের রিকোয়েস্ট গ্রহণ করা:
    • কন্ট্রোলার রিকোয়েস্টের ভিত্তিতে প্রয়োজনীয় অ্যাকশন বা কার্যক্রম নির্ধারণ করে।
    • উদাহরণস্বরূপ, যখন একটি ইউজার example.com/index.php?r=site/index এ রিকোয়েস্ট পাঠায়, তখন site কন্ট্রোলার এবং index অ্যাকশন কল হয়।
  2. মডেল এবং ভিউ এর মধ্যে সংযোগ স্থাপন:
    • কন্ট্রোলার মডেল (Model) থেকে ডেটা নিয়ে আসে এবং ভিউ (View) তে তা পাঠানোর কাজ করে।
    • কন্ট্রোলার ডেটা প্রক্রিয়া করে এবং সেই ডেটা ভিউতে প্রেরণ করে, যাতে ইউজার তা দেখতে পায়।
  3. অ্যাকশন পরিচালনা:
    • কন্ট্রোলার সাধারণত একটি বা একাধিক অ্যাকশন (Action) ধারণ করে, যা ইউজারের রিকোয়েস্ট অনুযায়ী কার্য সম্পাদন করে। অ্যাকশন একটি পাবলিক মেথড যা কন্ট্রোলারের মধ্যে ডিফাইন করা থাকে।
    • উদাহরণস্বরূপ, actionIndex() বা actionCreate()
  4. রাউটিং এবং URL Mapping:
    • Yii ফ্রেমওয়ার্কে রাউটিং এর মাধ্যমে কন্ট্রোলার এবং অ্যাকশন নির্ধারণ করা হয়। এটি ইউজারের রিকোয়েস্টকে সঠিক কন্ট্রোলার ও অ্যাকশনের সঙ্গে যুক্ত করে।
    • রাউটিং সাধারণত config/web.php ফাইলে কনফিগার করা হয়।
  5. রিডিরেকশন এবং রেসপন্স পাঠানো:
    • কন্ট্রোলার রিকোয়েস্টের প্রেক্ষিতে বিভিন্ন রিডিরেকশন (redirect), রেসপন্স (response), বা ফলাফল প্রদান করতে পারে।
    • উদাহরণস্বরূপ, একটি সাফল্য বার্তা বা একটি এয়ারর মেসেজ ভিউতে পাঠানো হতে পারে।

Yii ফ্রেমওয়ার্কে Controller এর উদাহরণ

একটি সাধারণ কন্ট্রোলারের উদাহরণ দেওয়া হলো যা একটি PostController নামে কন্ট্রোলার তৈরি করে এবং এতে দুটি অ্যাকশন (যেমন: index এবং view) থাকবে।

namespace app\controllers;

use Yii;
use yii\web\Controller;
use app\models\Post;

class PostController extends Controller
{
    // অ্যাকশন: পোস্টের তালিকা দেখানো
    public function actionIndex()
    {
        // সমস্ত পোস্ট মডেল লোড করা
        $posts = Post::find()->all();

        // ভিউ তে পোস্ট ডেটা পাঠানো
        return $this->render('index', ['posts' => $posts]);
    }

    // অ্যাকশন: একটি নির্দিষ্ট পোস্ট দেখানো
    public function actionView($id)
    {
        // নির্দিষ্ট পোস্ট খুঁজে বের করা
        $post = Post::findOne($id);

        // ভিউ তে পোস্ট ডেটা পাঠানো
        return $this->render('view', ['post' => $post]);
    }
}

Controller Explanation:

  • actionIndex() অ্যাকশনটি সমস্ত পোস্টের তালিকা ফেচ করে এবং সেই ডেটা ভিউ তে পাঠায়।
  • actionView($id) অ্যাকশনটি একটি নির্দিষ্ট পোস্টের বিস্তারিত দেখায়, যেখানে $id হল পোস্টের ইউনিক আইডি।

এখানে render() মেথডটি ব্যবহার করা হয়েছে যা একটি ভিউ ফাইলকে রেন্ডার করে এবং কন্ট্রোলার থেকে ডেটা পাঠানোর কাজ করে।


Controller এর অ্যাকশন

প্রতিটি অ্যাকশন একটি পাবলিক মেথড, যা কন্ট্রোলারে ডিফাইন করা হয়। কন্ট্রোলার ক্লাসে বিভিন্ন অ্যাকশন থাকতে পারে, যেমন:

  1. actionIndex(): সাধারণত একটি লিস্ট বা ড্যাশবোর্ড দেখানোর জন্য ব্যবহৃত হয়।
  2. actionView(): নির্দিষ্ট তথ্য বা বিস্তারিত দেখানোর জন্য ব্যবহৃত হয়।
  3. actionCreate(): নতুন ডেটা তৈরি করার জন্য ব্যবহৃত হয়।
  4. actionUpdate(): বিদ্যমান ডেটা আপডেট করার জন্য ব্যবহৃত হয়।
  5. actionDelete(): ডেটা মুছে ফেলার জন্য ব্যবহৃত হয়।

এই সব অ্যাকশন ইউজারের রিকোয়েস্ট অনুযায়ী চলতে থাকে এবং প্রত্যেকটি অ্যাকশন একটি নির্দিষ্ট কাজ করে, যেমন ডেটাবেস থেকে তথ্য আনা, আপডেট করা, বা মুছে ফেলা।


Controller এর সাথে সম্পর্কিত কিছু গুরুত্বপূর্ণ ফিচার

  1. Access Control (ACF): Yii ফ্রেমওয়ার্কে কন্ট্রোলারের অ্যাকশনগুলোর জন্য Access Control Filter (ACF) ব্যবহার করে ইউজার অ্যাকসেস নিয়ন্ত্রণ করা যায়। উদাহরণস্বরূপ, একটি অ্যাকশন শুধু লগ ইন ইউজারের জন্য অথবা অ্যাডমিন রোলের জন্য অ্যাক্সেসযোগ্য হতে পারে।
  2. Before and After Filters:

    • beforeAction(): একটি অ্যাকশনের আগে কিছু কোড চালাতে সাহায্য করে।
    • afterAction(): একটি অ্যাকশনের পর কিছু কোড চালাতে সাহায্য করে।

    উদাহরণ:

    public function beforeAction($action)
    {
        // অ্যাকশনের আগে কিছু কোড
        return parent::beforeAction($action);
    }
    
    public function afterAction($action, $result)
    {
        // অ্যাকশনের পর কিছু কোড
        return parent::afterAction($action, $result);
    }
    

সারাংশ

Yii ফ্রেমওয়ার্কের Controller একটি গুরুত্বপূর্ণ উপাদান যা ইউজারের রিকোয়েস্ট গ্রহণ করে এবং প্রয়োজনীয় অ্যাকশন বা কার্যক্রম পরিচালনা করে। কন্ট্রোলার মডেল এবং ভিউ এর মধ্যে সংযোগ স্থাপন করে এবং ইউজারের রিকোয়েস্ট অনুযায়ী ডেটা প্রসেস করে। কন্ট্রোলারের অ্যাকশনগুলো অ্যাপ্লিকেশনের কার্যকারিতা পরিচালনা করে, এবং এটি Yii ফ্রেমওয়ার্কে রাউটিং এবং URL Mapping এর মাধ্যমে ইউজার ইন্টারফেসের সঙ্গে যোগাযোগ করে।

Content added By
Promotion

Are you sure to start over?

Loading...