Yii ফ্রেমওয়ার্কে Layouts এবং Partial Views ব্যবহার করা হয় অ্যাপ্লিকেশনের ভিউ (UI) অংশকে আরও ডাইনামিক, রিয়ুজেবল এবং কাস্টমাইজেবল করতে। এগুলি মূলত অ্যাপ্লিকেশনের রেন্ডারিং লজিক এবং UI উপাদানগুলিকে সুষ্ঠুভাবে সংগঠিত করার জন্য ব্যবহৃত হয়। এখানে Yii ফ্রেমওয়ার্কে Layouts এবং Partial Views এর ব্যবহারের পদ্ধতি বিস্তারিতভাবে আলোচনা করা হলো।
Layouts কী?
Layouts একটি প্রজেক্টের জন্য সাধারণ রূপরেখা বা শৈলী (Structure or Template) প্রদান করে। এটি মূলত একটি মাস্টার পেজ (Master Page) হিসেবে কাজ করে, যেখানে সাধারণ উপাদানগুলো যেমন হেডার, ফুটার, ন্যাভিগেশন বার ইত্যাদি একটি স্থানে রাখা হয় এবং বিভিন্ন পেজে এই উপাদানগুলো পুনরায় ব্যবহার করা যায়।
Yii তে Layout কিভাবে কাজ করে?
Yii-তে Layout একটি সাধারণ ভিউ ফাইল যা অন্যান্য ভিউগুলোর মধ্যে রেন্ডারিং করবে। এটি সাধারণত views/layouts ডিরেক্টরিতে সংরক্ষিত হয় এবং সমস্ত পেজের জন্য একটি সাধারণ শৈলী প্রদান করে।
Layout এর উদাহরণ:
মুল Layout ফাইল তৈরি:
views/layouts/main.phpফাইলটি সাধারণত একসাথে সব পেজের জন্য ব্যবহার হয়। উদাহরণস্বরূপ:<?php use yii\helpers\Html; use yii\widgets\Breadcrumbs; use yii\bootstrap\Nav; use yii\bootstrap\NavBar; use app\assets\AppAsset; AppAsset::register($this); ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title><?= Html::encode($this->title) ?></title> <?= Html::csrfMetaTags() ?> <?php $this->head() ?> </head> <body> <?php $this->beginBody() ?> <div class="wrap"> <?php NavBar::begin([ 'brandLabel' => 'My Yii Application', 'brandUrl' => Yii::$app->homeUrl, 'options' => [ 'class' => 'navbar-inverse navbar-fixed-top', ], ]); echo Nav::widget([ 'options' => ['class' => 'navbar-nav navbar-right'], 'items' => [ ['label' => 'Home', 'url' => ['/site/index']], ['label' => 'About', 'url' => ['/site/about']], ['label' => 'Contact', 'url' => ['/site/contact']], ], ]); NavBar::end(); ?> <div class="container"> <?= Breadcrumbs::widget([ 'links' => isset($this->params['breadcrumbs']) ? $this->params['breadcrumbs'] : [], ]) ?> <?= $content ?> </div> </div> <footer class="footer"> <div class="container"> <p class="pull-left">© My Company <?= date('Y') ?></p> </div> </footer> <?php $this->endBody() ?> </body> </html>এখানে
<?= $content ?>অংশে সেই পেজের মূল কন্টেন্ট রেন্ডার হবে যা এই Layout ব্যবহার করছে।Layout সেট করা:
আপনি যেকোনো কন্ট্রোলার বা অ্যাকশন থেকে
layoutসেট করতে পারেন। উদাহরণস্বরূপ:public function actions() { $this->layout = 'main'; // এখানে 'main' layout সেট করা হয়েছে }সাধারণভাবে, Yii অ্যাপ্লিকেশনে সমস্ত কন্ট্রোলার
mainLayout ব্যবহার করবে যদি না আপনি বিশেষভাবে অন্য কিছু সেট করেন।
Partial Views কী?
Partial Views একটি অংশবিশেষ ভিউ ফাইল যা মূল ভিউ বা লেআউটের মধ্যে অন্তর্ভুক্ত করা হয়। এগুলি সাধারণত পুনরাবৃত্ত উপাদান যেমন ফর্ম, গ্রিড, বা কোনও সাধারণ কম্পোনেন্টের জন্য ব্যবহৃত হয়। Partial views ব্যবহার করে কোড পুনঃব্যবহারযোগ্য এবং মেইনটেনেবল করা যায়।
Yii তে Partial View কিভাবে কাজ করে?
Yii-তে Partial View সাধারণত ছোট ছোট ব্লক বা উপাদান থাকে যা অন্য ভিউ ফাইলে ইনক্লুড করা হয়।
Partial View এর উদাহরণ:
Partial View ফাইল তৈরি:
ধরুন, আপনি একটি পেইজে বার্তা (message) দেখাতে চান। আপনি একটি Partial View তৈরি করতে পারেন:
views/site/_message.php:<div class="alert alert-info"> <?= $message ?> </div>এখানে
$messageহলো একটি ভ্যারিয়েবল যা মূল ভিউ থেকে পাস করা হবে।Partial View কল করা:
এবার আপনি এই Partial View কে অন্য ভিউ ফাইলে ইনক্লুড করতে পারেন:
views/site/index.php:<?php echo $this->render('_message', ['message' => 'Welcome to the site!']); ?>এখানে
_messagePartial View টিviews/site/_message.phpফাইল থেকে রেন্ডার হবে এবংmessageভ্যারিয়েবলটি সেখানে পাস করা হবে।
Layout এবং Partial Views এর মধ্যে পার্থক্য
- Layout:
- একটি সাধারণ শিরোনাম, ফুটার, নেভিগেশন ইত্যাদি নিয়ে তৈরি হয়।
- পুরো পেজের জন্য একটি কাঠামো নির্ধারণ করে, এবং অন্য ভিউগুলো এই কাঠামোর মধ্যে রেন্ডার হয়।
- সাধারণত একটি প্রোজেক্টের জন্য একটি বা দুটি Layout থাকে।
- Partial View:
- একটি ভিউ উপাদান যা ছোট অংশ হিসেবে ব্যবহার হয়।
- কোডের পুনঃব্যবহারযোগ্য অংশ হিসেবে কাজ করে, এবং অন্য ভিউ ফাইলের মধ্যে ইনক্লুড করা যায়।
সারাংশ
Yii ফ্রেমওয়ার্কে Layouts এবং Partial Views আপনাকে অ্যাপ্লিকেশনের UI অংশ গঠন এবং পুনঃব্যবহারযোগ্য কোড তৈরিতে সহায়তা করে। Layouts অ্যাপ্লিকেশনের সাধারণ কাঠামো এবং স্টাইল প্রদান করে, যেখানে Partial Views ছোট ছোট কোড ব্লক হিসেবে পুনঃব্যবহারযোগ্য উপাদান প্রদান করে। এই দুটি কনসেপ্ট ব্যবহার করে Yii অ্যাপ্লিকেশন আরও সংগঠিত এবং রিয়ুজেবল হয়ে ওঠে, যা কোড মেইনটেনেন্স এবং ডেভেলপমেন্টের গতি বৃদ্ধি করে।
Read more