# লারাভেলে লেআউট বিল্ডিং বা টেমপ্লেটিং

হ্যালো সবাইকে। আজকে আমরা আলোচনা করবো "**কিভাবে লারাভেলে টেমপ্লেটিং বা লেআউট বিল্ডিং করা যায়**"।

### প্রথমে বুঝতে হবে টেমপ্লেটিং টা আসলে কী?

টেমপ্লেটিং হলো - একটি ওয়েব এপ্লিকেশন তৈরী করতে গেলে যেই কমন জিনিসগুলো (Header, Footer, Menu) বার বার ব্যবহার করতে হয়, সেগুলোকে মাত্র ১ বার কোড করে Dynamically একাধিকবার ব্যবহার করা।

সাধারণ PHP দিয়ে রাসেল ভাইয়া টেমপ্লেটিং করাটা দেখিয়েছেন। ক্লাসটা করে না থাকলে দেখে আসুন। Laravel এ এসে এই টেমপ্লেটিং-কে ডাকা হবে Layout Building নামে।

* * *

### Layout Building এর প্রকারভেদঃ

লারাভেলে Layout Building দুই ভাবে করা যায়।

1\. [Layouts Using Components](https://laravel.com/docs/9.x/blade#layouts-using-components), 2. [Layouts Using Template Inheritance](https://laravel.com/docs/9.x/blade#layouts-using-template-inheritance)

আমরা আজকে প্রথমটা নিয়ে আলোচনা করার চেষ্টা করবো।

### #Layouts Using Components

ধরুন আপনার ডিজাইন করা একটি হোমপেইজ আছে। যেটাতে Header ও Footer আছে। আপনি চাইছেন Header ও Footer কে সব পেইজে দেখাতে। এজন্য আপনাকে লারাভেলের ফাইলগুলোর মধ্যে সর্বপ্রথম resources/views ফোল্ডারের ভিতরে components নামে একটি ফোল্ডার তৈরী করে সেখানে `layout.blade.php` নামে একটি নতুন ফাইল তৈরী করতে হবে।

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1670956830769/vsWMDgd8Q.png?auto=compress,format&format=webp align="left")

এরপর এই `layout.blade.php` ফাইলে একদম `<!DOCTYPE html>` থেকে শুরু করে Header পর্যন্ত এবং Footer থেকে শুরু করে শেষ পর্যন্ত রেখে দিন। এই দুইয়ের মধ্যে থাকে পেইজের কন্টেন্ট গুলো। তাই পেইজের কন্টেন্ট গুলো Dynamically দেখানোর জন্য এখানে `{{ $slot }}` এট্রিবিউট লিখতে হবে। নিচের উদাহরণে লক্ষ্য করুনঃ-

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1670958189131/rnx4R5YhB.png?auto=compress,format&format=webp align="left")

`{{ $slot }}` এট্রিবিউটের কাজ হলো প্রতিটা আলাদা আলাদা পেইজের কন্টেন্টের Data Collect করে তা Header ও Footer সহ সেই পেইজে দেখানো। তাহলে এবার কিভাবে আমরা হোমপেইজের কন্টেন্ট গুলো দেখাতে পারবো?

এজন্য আমাদের যেতে হবে resources/views/welcome.blade.php ফাইলে। মনে রাখতে হবে `{{ $slot }}` এট্রিবিউকে কাজে লাগাতে হলে পেইজের ফাইলে `<x-layout></x-layout>` নামের ট্যাগ লিখতে হবে। `<x-layout>` ট্যাগ ছাড়া `{{ $slot }}` এট্রিবিউট কোনোভাবেই কাজ করবে না।

শুরুতে এই ট্যাগ হোমপেইজের ফাইলে লিখে তারপর এর ভিতরে হোমপেইজের সব কন্টেন্ট দিয়ে দিবো। ব্যাস, এবার Save করে ম্যাজিক দেখুন। দেখবেন আপনার হোমপেইজ একদম সুন্দর মত Header ও Footer সহ সব কন্টেন্ট দেখাচ্ছে।

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1670959601116/hWkAl0qYV.png?auto=compress,format&format=webp align="left")

একইভাবে অন্যান্য পেইজগুলোতে যদি এভাবে দেখাতে চান তাহলে সবার আগে সেই পেইজগুলোর View তৈরী করে নিন এবং তা `web.php` ফাইল থেকে Route করে নিন। কিভাবে পেইজের View এবং Route তৈরী করতে হয় তা নিয়ে অন্য একদিন আলোচনা করবো। আজ এ পর্যন্তই। সবাই ভালো থাকুন।
