View স্ক্রিপ্ট এবং লেআউট কনফিগারেশন

Zend Framework এর বেসিক ধারণা - জেন্ড ফ্রেমওয়ার্ক (Zend Framework) - Web Development

270

Zend Framework (এখন Laminas) এ View স্ক্রিপ্ট এবং Layout কনফিগারেশন খুবই গুরুত্বপূর্ণ, কারণ এগুলো অ্যাপ্লিকেশনের ইউজার ইন্টারফেস (UI) তৈরির জন্য দায়ী। View স্ক্রিপ্টের মাধ্যমে কন্ট্রোলার থেকে প্রাপ্ত ডাটাকে HTML ফরম্যাটে রেন্ডার করা হয় এবং Layout কনফিগারেশন পুরো ওয়েব পেজের লেআউট বা কাঠামো নির্ধারণ করে।

এই গাইডে আমরা কিভাবে View স্ক্রিপ্ট এবং Layout কনফিগারেশন করতে হয় তা আলোচনা করবো।


View স্ক্রিপ্ট কনফিগারেশন

Zend Framework এ View স্ক্রিপ্ট সাধারণত .phtml এক্সটেনশনের ফাইলে থাকে। কন্ট্রোলার থেকে ডাটা ভিউতে পাঠানোর পর, সেই ডাটা HTML ফরম্যাটে রেন্ডার করার জন্য View স্ক্রিপ্ট ব্যবহৃত হয়।


১. View স্ক্রিপ্টের ফোল্ডার স্ট্রাকচার

Zend Framework এ ভিউ ফাইল সাধারণত কন্ট্রোলারের নাম অনুসারে নির্ধারিত ফোল্ডারে থাকে। উদাহরণস্বরূপ, যদি আপনি ProductController এর indexAction তৈরি করেন, তবে তার জন্য একটি ভিউ স্ক্রিপ্ট হবে module/Product/view/product/product/index.phtml ফাইলে।

ফোল্ডার স্ট্রাকচার:

module/Product/view/product/product/index.phtml

index.phtml:

<h1>Product List</h1>
<ul>
    <?php foreach ($this->products as $product): ?>
        <li><?php echo $this->escapeHtml($product->getName()); ?> - $<?php echo $product->getPrice(); ?></li>
    <?php endforeach; ?>
</ul>

এখানে $this->products হলো কন্ট্রোলার থেকে প্রাপ্ত ডাটা, যা ভিউতে রেন্ডার করা হয়েছে।


২. View মডেল

View মডেল ব্যবহার করে ভিউতে ডাটা পাঠানো হয়। এটি কন্ট্রোলারের একটি এক্সটেনশন হিসেবে কাজ করে। কন্ট্রোলার থেকে ViewModel তৈরি করে, সেই ডাটাকে ভিউতে পাঠানো হয়।

Controller (ProductController.php):

public function indexAction()
{
    $products = $this->getProductService()->getAllProducts();
    return new ViewModel([
        'products' => $products
    ]);
}

এখানে getProductService()->getAllProducts() মেথড থেকে প্রাপ্ত সমস্ত পণ্যের তথ্য $products এ সংরক্ষিত এবং ভিউতে পাঠানো হয়েছে।


Layout কনফিগারেশন

Layout একটি ওয়েব পেজের সাধারণ কাঠামো বা লেআউট নির্ধারণ করে, যেমন হেডার, ফুটার, নেভিগেশন বার ইত্যাদি। Zend Framework এ লেআউট কনফিগারেশন দ্বারা আপনি পুরো পেজের সাধারণ কাঠামো তৈরি করতে পারেন এবং প্রতিটি ভিউ স্ক্রিপ্টকে এই লেআউটের মধ্যে অন্তর্ভুক্ত করতে পারেন।


১. লেআউট ফাইলের স্ট্রাকচার

লেআউট ফাইল সাধারণত layout ডিরেক্টরিতে থাকে এবং .phtml এক্সটেনশনের হয়ে থাকে। উদাহরণস্বরূপ, একটি সাধারণ লেআউট ফাইল হবে module/Application/view/layout/layout.phtml

ফোল্ডার স্ট্রাকচার:

module/Application/view/layout/layout.phtml

layout.phtml:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>My Application</title>
</head>
<body>
    <header>
        <h1>Welcome to My Application</h1>
        <nav>
            <a href="/">Home</a>
            <a href="/product">Products</a>
        </nav>
    </header>

    <main>
        <?php echo $this->content; ?>
    </main>

    <footer>
        <p>© 2024 My Application</p>
    </footer>
</body>
</html>

এখানে <?php echo $this->content; ?> অংশটি ভিউ স্ক্রিপ্টের কন্টেন্টকে রেন্ডার করবে।


২. লেআউট কনফিগারেশন

লেআউট ফাইলটি ব্যবহার করার জন্য ViewManager কনফিগারেশনে লেআউট ফাইলটি ডিফাইন করতে হয়।

module.config.php:

return [
    'view_manager' => [
        'layout' => 'layout/layout', // লেআউট ফাইলের পাথ
        'template_map' => [
            'layout/layout' => __DIR__ . '/../view/layout/layout.phtml',
        ],
        'template_path_stack' => [
            'application' => __DIR__ . '/../view',
        ],
    ],
];

এখানে layout/layout কনফিগারেশনটি লেআউট ফাইলের পাথ নির্দেশ করছে। এটি অ্যাপ্লিকেশনের প্রতিটি পেজে সাধারণ কাঠামো প্রদান করবে।


৩. লেআউট ও ভিউ একসাথে ব্যবহার করা

আপনি যদি কিছু নির্দিষ্ট অ্যাকশনের জন্য ভিন্ন লেআউট ব্যবহার করতে চান, তবে সেটা করা যায় কন্ট্রোলার থেকে। উদাহরণস্বরূপ, যদি ProductController এর indexAction এ অন্য একটি লেআউট ব্যবহার করতে চান, তবে তা এইভাবে কনফিগার করা যাবে:

public function indexAction()
{
    $layout = $this->layout(); // লেআউট অবজেক্ট
    $layout->setTemplate('layout/product-layout'); // ভিন্ন লেআউট সেট করা
    return new ViewModel();
}

এখানে product-layout একটি আলাদা লেআউট ফাইল হতে পারে, যেটি আপনি view/layout/ ফোল্ডারে সংরক্ষণ করবেন।


View এবং Layout কনফিগারেশন সম্পর্ক

  • View স্ক্রিপ্ট: এটি কন্ট্রোলারের ডাটা ভিউতে রেন্ডার করার জন্য ব্যবহৃত হয়। এটি HTML বা অন্যান্য ফরম্যাটে কন্টেন্ট তৈরি করে।
  • Layout: এটি ওয়েব পেজের গ্লোবাল কাঠামো বা লেআউট তৈরি করে। এটি প্রাথমিক কাঠামো (যেমন, হেডার, ফুটার, সাইডবার) এবং ভিউ স্ক্রিপ্টের কন্টেন্টকে একত্রিত করে।

একই লেআউট ফাইল বিভিন্ন অ্যাকশনের জন্য ব্যবহৃত হতে পারে, তবে আপনি যদি চান, তখন বিশেষ অ্যাকশনের জন্য আলাদা লেআউট ব্যবহার করতে পারবেন।


সারাংশ

Zend Framework এ View স্ক্রিপ্ট এবং Layout কনফিগারেশন আপনার অ্যাপ্লিকেশনের ইউজার ইন্টারফেস তৈরির জন্য গুরুত্বপূর্ণ। View স্ক্রিপ্ট কন্ট্রোলারের ডাটা রেন্ডার করে এবং Layout পুরো ওয়েব পেজের কাঠামো তৈরি করে। Layout ফাইল ব্যবহার করে সাধারণ কাঠামো এবং ভিউ স্ক্রিপ্টের কন্টেন্ট একত্রিত করা হয়। প্রয়োজন হলে কন্ট্রোলার থেকে নির্দিষ্ট অ্যাকশনের জন্য ভিন্ন লেআউটও ব্যবহার করা যেতে পারে।

Content added By
Promotion

Are you sure to start over?

Loading...