Template Inheritance এবং Layout ব্যবস্থাপনা

Controller এবং View Management - ফুয়েলপিএইচপি (FuelPHP) - Web Development

249

FuelPHP একটি শক্তিশালী PHP ফ্রেমওয়ার্ক যা MVC (Model-View-Controller) আর্কিটেকচার অনুসরণ করে এবং এর মাধ্যমে আপনি আধুনিক ও স্কেলেবল ওয়েব অ্যাপ্লিকেশন তৈরি করতে পারেন। Template Inheritance এবং Layout Management হল দুটি গুরুত্বপূর্ণ ধারণা যা FuelPHP তে ব্যবহারকারীদের জন্য সুন্দর এবং পুনরায় ব্যবহারযোগ্য ইউজার ইন্টারফেস তৈরি করতে সহায়ক হয়।

FuelPHP তে Template Inheritance এবং Layout ব্যবস্থাপনা

Template Inheritance এবং Layout Management FuelPHP তে একটি শক্তিশালী টেমপ্লেট সিস্টেম প্রদান করে, যা কোড পুনরায় ব্যবহারযোগ্য, পরিষ্কার এবং সুসংগঠিত করতে সহায়ক।

Template Inheritance:

Template Inheritance এর মাধ্যমে একটি প্যারেন্ট টেমপ্লেট তৈরি করা হয় এবং তার মধ্যে সাধারণ উপাদানগুলি (যেমন হেডার, ফুটার, নেভিগেশন বার) রাখা হয়। এর পর, সাবটেমপ্লেট (চাইল্ড টেমপ্লেট) তৈরি করে প্যারেন্ট টেমপ্লেটের কাঠামো অনুসরণ করা হয়। এই পদ্ধতির মাধ্যমে কোড রিপিটিশন কমানো যায় এবং টেমপ্লেটের মধ্যে পুনঃব্যবহারযোগ্য অংশ সহজে রাখা যায়।

FuelPHP তে Template Inheritance ব্যবহার:

FuelPHP তে টেমপ্লেট ইনহেরিটেন্স ব্যবহারের জন্য View ক্লাস এবং sections ব্যবহার করা হয়।

Step 1: প্যারেন্ট টেমপ্লেট তৈরি করা

প্যারেন্ট টেমপ্লেটের মধ্যে সাধারণ কাঠামো (হেডার, ফুটার, সাইডবার) রাখা হয় এবং নির্দিষ্ট সেকশনগুলিতে চাইল্ড টেমপ্লেটের কন্টেন্ট ইনজেক্ট করা হয়।

fuel/app/views/layouts/default.php (প্যারেন্ট টেমপ্লেট):

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title><?php echo $title; ?></title>
    <!-- Include Stylesheets -->
    <?php echo Asset::css('styles.css'); ?>
</head>
<body>
    <!-- Header -->
    <header>
        <h1>My Website</h1>
        <nav>
            <ul>
                <li><a href="#">Home</a></li>
                <li><a href="#">About</a></li>
                <li><a href="#">Contact</a></li>
            </ul>
        </nav>
    </header>

    <!-- Main Content Section -->
    <div class="content">
        <?php echo $content; ?>
    </div>

    <!-- Footer -->
    <footer>
        <p>© 2024 My Website. All rights reserved.</p>
    </footer>

    <!-- Include Scripts -->
    <?php echo Asset::js('scripts.js'); ?>
</body>
</html>

Step 2: চাইল্ড টেমপ্লেট তৈরি করা

চাইল্ড টেমপ্লেটের মধ্যে আপনি @extends এবং @section নির্দেশ ব্যবহার করে প্যারেন্ট টেমপ্লেটের কাঠামো অনুসরণ করেন।

fuel/app/views/pages/home.php (চাইল্ড টেমপ্লেট):

<?php echo $this->extend('layouts/default'); ?>

<?php echo $this->section('content'); ?>
    <h2>Welcome to My Website</h2>
    <p>This is the home page.</p>
<?php echo $this->endSection(); ?>

এখানে, চাইল্ড টেমপ্লেট layouts/default প্যারেন্ট টেমপ্লেটের উপর ভিত্তি করে তৈরি করা হয়েছে এবং content সেকশনটি প্যারেন্ট টেমপ্লেটের মধ্যে ইনজেক্ট করা হয়েছে।

Step 3: Controller থেকে View Render করা

আপনার কন্ট্রোলারে, View ক্লাস ব্যবহার করে প্যারেন্ট টেমপ্লেট এবং চাইল্ড টেমপ্লেটকে রেন্ডার করুন।

fuel/app/controllers/welcome.php:

<?php

class Controller_Welcome extends Controller
{
    public function action_index()
    {
        $data['title'] = "Welcome Page"; // Set title for the page
        return Response::forge(View::forge('pages/home', $data));
    }
}

এখানে pages/home চাইল্ড টেমপ্লেটটি রেন্ডার করা হচ্ছে এবং $data এর মাধ্যমে প্যারেন্ট টেমপ্লেটের title সেট করা হচ্ছে।

Layout Management:

Layout Management FuelPHP তে একটি টেমপ্লেট সিস্টেম ব্যবস্থাপনার পদ্ধতি। এটি মূলত বিভিন্ন ধরনের লেআউট তৈরি করতে ব্যবহৃত হয়, যেমন: এক্সটার্নাল লেআউট, ড্যাশবোর্ড লেআউট ইত্যাদি।

FuelPHP তে Layout Management এর সুবিধা:

  1. Reusability: একাধিক পেজের জন্য একই লেআউট ব্যবহার করা যেতে পারে।
  2. Separation of Concerns: UI লেআউট এবং কন্টেন্টের মধ্যে সুস্পষ্ট বিভাজন রাখা যায়।
  3. Maintainability: লেআউট ফাইলগুলির মধ্যে সাধারণ কোড রাখলে কোডের রক্ষণাবেক্ষণ সহজ হয়।

Example of Layout Management:

ধরা যাক, আপনার একটি সাধারণ ওয়েব অ্যাপ্লিকেশন রয়েছে যেখানে আলাদা আলাদা লেআউট ব্যবহার করা হচ্ছে—একটি পাবলিক পেজের জন্য এবং অন্যটি অ্যাডমিন ড্যাশবোর্ডের জন্য।

fuel/app/views/layouts/admin.php (অ্যাডমিন লেআউট):

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Admin Dashboard</title>
    <?php echo Asset::css('admin-style.css'); ?>
</head>
<body>
    <div class="sidebar">
        <ul>
            <li><a href="#">Dashboard</a></li>
            <li><a href="#">Users</a></li>
            <li><a href="#">Settings</a></li>
        </ul>
    </div>

    <div class="content">
        <?php echo $content; ?>
    </div>

    <?php echo Asset::js('admin-scripts.js'); ?>
</body>
</html>

এখানে, একটি সাইডবার এবং কনটেন্ট এরিয়া রাখা হয়েছে যেখানে অ্যাডমিন ড্যাশবোর্ডের কন্টেন্ট প্রদর্শিত হবে।

Admin Page Example:

<?php echo $this->extend('layouts/admin'); ?>

<?php echo $this->section('content'); ?>
    <h2>Admin Dashboard</h2>
    <p>Welcome to the admin panel.</p>
<?php echo $this->endSection(); ?>

এখানে, আমরা একইভাবে প্যারেন্ট লেআউট (admin.php) এর সাথে কন্টেন্ট (Dashboard) যোগ করছি।

FuelPHP তে Layouts এবং Templates ব্যবস্থাপনার উপকারিতা:

  1. Flexible UI Structure:
    • FuelPHP তে একাধিক লেআউট এবং টেমপ্লেট ব্যবস্থাপনা সহজ, যা বিভিন্ন ধরনের পেজের জন্য আলাদা লেআউট তৈরি করার সুযোগ দেয়।
  2. Code Reusability:
    • Template Inheritance এর মাধ্যমে কোড পুনঃব্যবহারযোগ্য এবং আরও মডুলার হয়, ফলে ডেভেলপমেন্টের সময় সাশ্রয় হয়।
  3. Clean Code:
    • UI উপাদানগুলো এবং কন্টেন্ট আলাদা রাখা যায়, যার মাধ্যমে কোড সুসংগঠিত থাকে এবং রক্ষণাবেক্ষণ সহজ হয়।
  4. Improved Maintainability:
    • যখন UI পরিবর্তন বা আপডেট করতে হয়, তখন আপনি শুধু প্যারেন্ট টেমপ্লেট বা লেআউট পরিবর্তন করতে পারেন, যা পুরো সাইটে প্রভাব ফেলবে।

Template Inheritance এবং Layout Management FuelPHP তে উন্নত ওয়েব অ্যাপ্লিকেশন ডিজাইন এবং ব্যবস্থাপনার জন্য একটি অত্যন্ত শক্তিশালী টুল। এই ফিচারগুলি আপনাকে একটি মডুলার এবং পুনঃব্যবহারযোগ্য কোড বেস তৈরি করতে সাহায্য করে এবং ওয়েব অ্যাপ্লিকেশনের উন্নত রক্ষণাবেক্ষণ এবং কাস্টমাইজেশন সুবিধা প্রদান করে। FuelPHP এর টেমপ্লেট সিস্টেম আপনাকে সহজে UI/UX উপাদান এবং কনটেন্ট সেকশনের মধ্যে সঠিক বিভাজন রাখতে সাহায্য করে।

Content added By
Promotion

Are you sure to start over?

Loading...