FuelPHP একটি শক্তিশালী PHP framework যা সহজ এবং কার্যকরী MVC (Model-View-Controller) আর্কিটেকচার প্রস্তাব করে। Views এবং Layouts এর মাধ্যমে আপনি একটি ওয়েব অ্যাপ্লিকেশন তৈরি করতে পারেন, যেখানে Views অ্যাপ্লিকেশনের প্রদর্শনী অংশ (UI) এবং Layouts মূল কাঠামো হিসেবে কাজ করে।
এখানে FuelPHP তে Simple Views এবং Complex Layouts তৈরি করার একটি উদাহরণ দেওয়া হলো, যা আপনাকে ক্লিয়ার ধারণা দেবে কিভাবে FuelPHP তে views এবং layouts ব্যবহৃত হয়।
Simple Views in FuelPHP:
Views হল অ্যাপ্লিকেশনের UI অংশ যা ইউজারদের কাছে তথ্য প্রদর্শন করে। FuelPHP তে Views তৈরি করা সহজ এবং এতে ডাটা পাস করার জন্য View::forge() মেথড ব্যবহার করা হয়।
Step 1: Create a Simple View
Example: A simple hello view that displays a message.
Create a View File: FuelPHP তে Views সাধারণত
app/viewsডিরেক্টরির মধ্যে থাকে। এখানে,hello.phpনামে একটি ভিউ তৈরি করা হবে।File:
app/views/hello.php<h1>Hello, <?= $name ?>!</h1>এখানে
<?= $name ?>হল PHP shorthand, যা ভিউয়ের মধ্যে একটি ভেরিয়েবল$nameপ্রিন্ট করবে।Create a Controller to Load the View: এখন, একটি কন্ট্রোলার তৈরি করতে হবে যা এই ভিউ লোড করবে এবং ভিউতে ডেটা পাস করবে।
File:
app/controllers/hello.phpclass Controller_Hello extends Controller { public function action_index() { $data['name'] = 'World'; // Passing data to the view return Response::forge(View::forge('hello', $data)); } }এখানে,
Controller_Helloএরaction_index()মেথডে $data['name'] = 'World' পাস করা হয়েছে এবং ভিউhello.phpফাইলটি লোড করা হয়েছে।View::forge()মেথডের মাধ্যমে ভিউটি তৈরি হয় এবং$dataঅ্যারে থেকেnameভ্যালু ভিউতে পাস করা হয়।- Accessing the View: আপনি ব্রাউজারে
/helloURL এ গিয়ে আপনার তৈরি করা ভিউ দেখতে পারবেন, যা "Hello, World!" প্রদর্শন করবে।
Complex Layouts in FuelPHP:
Layouts হল এমন কাঠামো যা একটি ওয়েব পেজের ভিত্তি তৈরি করে, যেমন হেডার, ফুটার, সাইডবার ইত্যাদি। FuelPHP তে Layouts ব্যবহারের মাধ্যমে আপনি প্রতিটি পেজের জন্য সাধারণ ডিজাইন উপাদানগুলি পুনরায় ব্যবহার করতে পারেন।
Step 1: Create a Layout File
FuelPHP তে লেআউট তৈরি করতে, Layout::forge() ব্যবহার করা হয়। এখানে, একটি সাধারণ লেআউট তৈরি করা হবে যা header, content, এবং footer ধারণ করবে।
Create the Layout File:
File:
app/views/layouts/main.php<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>FuelPHP Layout Example</title> </head> <body> <header> <h1>Welcome to My Website</h1> <nav> <ul> <li><a href="/">Home</a></li> <li><a href="/about">About</a></li> <li><a href="/contact">Contact</a></li> </ul> </nav> </header> <div id="content"> <?= $content ?> <!-- Content goes here --> </div> <footer> <p>Copyright © 2024 My Website</p> </footer> </body> </html>এখানে, $content হল একটি প্লেসহোল্ডার যা controller থেকে ডায়নামিক কন্টেন্ট গ্রহণ করবে।
Modify Controller to Use the Layout:
এখন, কন্ট্রোলারটি এই লেআউটের সাথে ভিউ মিশ্রিত করে কন্টেন্টটি প্রদর্শন করবে।
File:
app/controllers/pages.phpclass Controller_Pages extends Controller { public function action_home() { $data['content'] = View::forge('home'); // Content for the Home page return Response::forge(View::forge('layouts/main', $data)); } public function action_about() { $data['content'] = View::forge('about'); // Content for the About page return Response::forge(View::forge('layouts/main', $data)); } }এখানে, $data['content'] এর মাধ্যমে পেজের কন্টেন্ট লোড করা হচ্ছে এবং লেআউট (
layouts/main) এর মধ্যে সেই কন্টেন্ট যোগ করা হচ্ছে।Create Individual Views for Content:
File:
app/views/home.php<h2>Home Page</h2> <p>Welcome to the home page of my website!</p>File:
app/views/about.php<h2>About Us</h2> <p>This is a little bit about our website and team.</p>- Accessing the Layout: আপনি এখন
/homeএবং/aboutURL গুলির মাধ্যমে লেআউটসহ পেজের কন্টেন্ট দেখতে পারবেন। প্রতিটি পেজের কন্টেন্ট সেই লেআউটের মধ্যে প্রদর্শিত হবে।
Advanced Layouts with Sections:
FuelPHP তে আপনি আরও উন্নত layouts তৈরি করতে পারেন যেখানে একাধিক সেকশন থাকবে, এবং প্রতিটি সেকশন আলাদাভাবে লোড হবে।
Example of a Layout with Sections:
Layout File with Sections:
File:
app/views/layouts/advanced.php<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Advanced Layout</title> </head> <body> <header> <h1>Advanced Layout with Sections</h1> </header> <div id="content"> <?= $content ?> </div> <footer> <p>Copyright © 2024 My Website</p> </footer> <?= isset($scripts) ? $scripts : '' ?> <!-- Include custom scripts if set --> </body> </html>Controller with Sections:
File:
app/controllers/pages.phpclass Controller_Pages extends Controller { public function action_home() { $data['content'] = View::forge('home'); $data['scripts'] = '<script src="script.js"></script>'; // Include custom JS script return Response::forge(View::forge('layouts/advanced', $data)); } }Home View File:
File:
app/views/home.php<h2>Home Page</h2> <p>Welcome to the home page.</p>- Accessing the Page:
/homeURL এ গিয়ে আপনি Advanced Layout সহ Home পেজ দেখতে পারবেন, এবং পেজের শেষে কাস্টম JavaScript ফাইলও লোড হবে।
- Simple Views FuelPHP তে সহজেই তৈরি করা যায়, যেখানে আপনি কন্ট্রোলারের মাধ্যমে ডেটা পাস করতে পারেন এবং তা ভিউয়ে প্রদর্শন করতে পারেন।
- Complex Layouts তৈরি করার জন্য FuelPHP তে layouts ব্যবহৃত হয়, যেখানে আপনি একটি সাধারণ কাঠামো (যেমন হেডার, ফুটার, নেভিগেশন) ব্যবহার করে অ্যাপ্লিকেশন তৈরি করতে পারেন।
- FuelPHP এর layouts এবং views ব্যবহারের মাধ্যমে আপনি আপনার অ্যাপ্লিকেশনের UI কে কাস্টমাইজ এবং মডুলার করে তুলতে পারবেন।