Yii ফ্রেমওয়ার্ক একটি শক্তিশালী এবং আধুনিক PHP ফ্রেমওয়ার্ক, যা MVC (Model-View-Controller) প্যাটার্ন ব্যবহার করে অ্যাপ্লিকেশন ডিজাইন এবং উন্নয়নকে সহজ করে তোলে। MVC প্যাটার্ন একটি জনপ্রিয় আর্কিটেকচারাল প্যাটার্ন, যা ওয়েব অ্যাপ্লিকেশন উন্নয়নের জন্য প্রযোজ্য এবং এটি অ্যাপ্লিকেশনের বিভিন্ন অংশ আলাদা করে কোডের পুনঃব্যবহারযোগ্যতা ও মেইনটেনেবিলিটি বৃদ্ধি করে।
MVC প্যাটার্নের ৩টি প্রধান উপাদান
Model (মডেল)
- Model অ্যাপ্লিকেশনের ডেটা ও ব্যবসায়িক লজিক (business logic) পরিচালনা করে। এটি ডেটাবেসের সঙ্গে সম্পর্ক স্থাপন, ডেটা ভ্যালিডেশন, ডেটা প্রসেসিং এবং অন্যান্য ডেটা সম্পর্কিত কাজগুলো করে।
- মডেল অ্যাপ্লিকেশনের ডেটার অবস্থা পরিচালনা করে এবং কন্ট্রোলারের নির্দেশ অনুযায়ী ডেটা রিটার্ন করে।
- Yii ফ্রেমওয়ার্কে মডেল সাধারণত একটি PHP ক্লাস হিসেবে থাকে, যেটি ActiveRecord প্যাটার্ন অনুসরণ করে এবং ডেটাবেস টেবিলের সঙ্গে মেলানো হয়।
উদাহরণ:
class Post extends \yii\db\ActiveRecord { public static function tableName() { return 'post'; } }View (ভিউ)
- View হল অ্যাপ্লিকেশনের ইউজার ইন্টারফেস (UI) অংশ, যা ব্যবহারকারীর কাছে প্রদর্শিত হয়। এটি সাধারণত HTML, CSS, JavaScript এবং অন্যান্য ভিজ্যুয়াল উপাদান ধারণ করে।
- ভিউ মডেল থেকে ডেটা গ্রহণ করে এবং সেগুলো ওয়েব পৃষ্ঠায় উপস্থাপন করে।
- Yii ফ্রেমওয়ার্কে, ভিউগুলি PHP ফাইল হিসেবে থাকে এবং এটি টেমপ্লেটের মাধ্যমে ডেটা প্রদর্শন করে।
উদাহরণ:
<!-- views/post/index.php --> <h1><?= $this->title ?></h1> <ul> <?php foreach ($posts as $post): ?> <li><?= $post->title ?></li> <?php endforeach; ?> </ul>Controller (কন্ট্রোলার)
- Controller হল অ্যাপ্লিকেশনের ব্যবসায়িক লজিক বা কার্যক্রম পরিচালনাকারী অংশ। এটি মডেল ও ভিউয়ের মধ্যে যোগাযোগ স্থাপন করে।
- কন্ট্রোলার ব্যবহারকারীর অনুরোধ গ্রহণ করে এবং সেই অনুযায়ী মডেল থেকে ডেটা আহরণ করে, পরবর্তীতে ভিউতে তা পাঠিয়ে দেয়।
- Yii ফ্রেমওয়ার্কে, কন্ট্রোলার সাধারণত
yii\web\Controllerক্লাসকে এক্সটেন্ড করে তৈরি করা হয়।
উদাহরণ:
class PostController extends \yii\web\Controller { public function actionIndex() { $posts = Post::find()->all(); return $this->render('index', ['posts' => $posts]); } }
MVC প্যাটার্নের কাজের ধাপ
Yii ফ্রেমওয়ার্কের মধ্যে MVC প্যাটার্নের কাজের ধাপগুলি নিম্নরূপ:
- ক্লায়েন্টের অনুরোধ
- ব্যবহারকারী যখন একটি URL এ যেতে চায়, তখন এটি কন্ট্রোলারে একটি অ্যাকশন মেথডকে কল করে। উদাহরণস্বরূপ,
http://localhost/index.php?r=post/indexURL টিPostControllerএরactionIndex()মেথডটিকে কল করবে।
- ব্যবহারকারী যখন একটি URL এ যেতে চায়, তখন এটি কন্ট্রোলারে একটি অ্যাকশন মেথডকে কল করে। উদাহরণস্বরূপ,
- কন্ট্রোলার লজিক
- কন্ট্রোলার ক্লাসটি ব্যবহারকারীর অনুরোধ গ্রহণ করে এবং প্রয়োজনীয় মডেল বা ডেটা সংগ্রহের জন্য কার্যক্রম শুরু করে।
- উদাহরণস্বরূপ,
PostControllerতারactionIndex()মেথডেPostমডেল ব্যবহার করে ডেটাবেস থেকে ব্লগ পোস্টের তালিকা আহরণ করে।
- ডেটা প্রেরণ এবং ভিউ রেন্ডারিং
- কন্ট্রোলার, মডেল থেকে প্রাপ্ত ডেটা ভিউতে প্রেরণ করে।
- ভিউ ফাইলটি এই ডেটা গ্রহণ করে এবং ব্যবহারকারীকে উপস্থাপনযোগ্য HTML হিসাবে রেন্ডার করে।
- প্রদর্শন
- ব্যবহারকারী ব্রাউজারে প্রাপ্ত HTML, CSS, এবং JavaScript ফাইল দেখে, যা ভিউ দ্বারা তৈরি এবং প্রদর্শিত হয়।
Yii ফ্রেমওয়ার্কে MVC প্রয়োগ
Yii ফ্রেমওয়ার্কে MVC প্যাটার্ন অত্যন্ত কার্যকরভাবে প্রয়োগ করা হয়েছে। প্রতিটি অ্যাপ্লিকেশন কম্পোনেন্টের জন্য আলাদা আলাদা ডিরেক্টরি রয়েছে, যা MVC ধারণাকে বজায় রাখে।
- Model:
models/ডিরেক্টরিতে মডেল ফাইল থাকে। - View:
views/ডিরেক্টরিতে ভিউ টেমপ্লেট থাকে। - Controller:
controllers/ডিরেক্টরিতে কন্ট্রোলার ফাইল থাকে।
এই গঠনটি অ্যাপ্লিকেশনের স্ট্রাকচার পরিষ্কার রাখে এবং কোডের মেইনটেনেন্স সহজ করে।
সারাংশ
Yii ফ্রেমওয়ার্ক MVC (Model-View-Controller) প্যাটার্ন ব্যবহার করে অ্যাপ্লিকেশন ডেভেলপমেন্টকে সহজ, পরিষ্কার, এবং মডুলার করে তোলে।
- Model ডেটা ও লজিক সংরক্ষণ করে।
- View ইউজার ইন্টারফেস উপস্থাপন করে।
- Controller ডেটা সংগ্রহ এবং ভিউতে প্রেরণের কাজ করে।
এভাবে MVC প্যাটার্ন ব্যবহারে অ্যাপ্লিকেশন উন্নয়ন আরও স্ট্রাকচারড এবং কার্যকরী হয়।