Zend Framework বা Laminas এ কন্ট্রোলার এবং অ্যাকশন তৈরি করা বেশ সহজ। কন্ট্রোলার হল অ্যাপ্লিকেশনের লজিক্যাল অংশ, যা ইউজারের রিকোয়েস্টকে প্রসেস করে এবং ভিউতে ডাটা পাঠায়। প্রতিটি কন্ট্রোলারের মধ্যে একাধিক অ্যাকশন থাকতে পারে, যা নির্দিষ্ট ইউজার রিকোয়েস্ট অনুযায়ী কাজ করে।
নিচে Zend Framework বা Laminas এ কিভাবে প্রথম কন্ট্রোলার এবং অ্যাকশন তৈরি করতে হয়, তার একটি স্টেপ-বাই-স্টেপ গাইড দেওয়া হলো।
কন্ট্রোলার এবং অ্যাকশন তৈরি করার জন্য প্রয়োজনীয় পদক্ষেপ
- কন্ট্রোলার ফোল্ডার তৈরি করুন: প্রথমে আপনার মডিউল বা অ্যাপ্লিকেশনের কন্ট্রোলার ফোল্ডার তৈরি করুন। উদাহরণস্বরূপ, যদি আপনি একটি
Productমডিউল তৈরি করতে চান, তবেmodule/Product/src/Controller/ফোল্ডারে আপনার কন্ট্রোলারটি থাকবে। - কন্ট্রোলার ক্লাস তৈরি করুন: কন্ট্রোলার ক্লাস সাধারণত
Controllerনামক পিএইচপি ক্লাস হিসেবে তৈরি হয়, যাAbstractActionControllerক্লাস থেকে ইনহেরিট হয়। - অ্যাকশন মেথড তৈরি করুন: কন্ট্রোলারে অ্যাকশন মেথড তৈরি করতে হয়, যা ইউজারের রিকোয়েস্ট অনুযায়ী এক্সিকিউট হবে। উদাহরণস্বরূপ, একটি
indexActionতৈরি করা হয়, যা ডিফল্ট অ্যাকশন হিসেবে কাজ করবে।
১. কন্ট্রোলার ফোল্ডার এবং ক্লাস তৈরি
প্রথমে আপনার কন্ট্রোলারের জন্য একটি PHP ক্লাস তৈরি করুন। উদাহরণস্বরূপ, একটি ProductController তৈরি করা।
ফোল্ডার স্ট্রাকচার:
module/Product/src/Controller/ProductController.php
ProductController.php:
<?php
namespace Product\Controller;
use Laminas\Mvc\Controller\AbstractActionController;
use Laminas\View\Model\ViewModel;
class ProductController extends AbstractActionController
{
public function indexAction()
{
// এই অ্যাকশনে কিছু ডাটা প্রস্তুত করা হচ্ছে
$message = 'Welcome to the Product Page!';
// ভিউ মডেল তৈরি করা হচ্ছে এবং ডাটা পাঠানো হচ্ছে
return new ViewModel([
'message' => $message
]);
}
}
এই কন্ট্রোলারে indexAction নামে একটি অ্যাকশন মেথড রয়েছে, যা ইউজারের রিকোয়েস্টে রেন্ডার হবে এবং একটি মেসেজ ভিউতে পাঠানো হবে।
২. রাউটিং কনফিগারেশন
এখন আমাদের কন্ট্রোলারটি অ্যাপ্লিকেশনে সঠিকভাবে রাউট করার জন্য কনফিগারেশন করতে হবে।
ফোল্ডার স্ট্রাকচার:
module/Product/config/module.config.php
module.config.php:
<?php
namespace Product;
return [
'controllers' => [
'invokables' => [
'Product\Controller\Product' => 'Product\Controller\ProductController',
],
],
'router' => [
'routes' => [
'product' => [
'type' => 'Literal',
'options' => [
'route' => '/product',
'defaults' => [
'controller' => 'Product\Controller\Product',
'action' => 'index',
],
],
],
],
],
'view_manager' => [
'template_path_stack' => [
'product' => __DIR__ . '/../view',
],
],
];
এখানে router সেকশনে আমরা /product রাউটটি সেট করেছি, যা ProductController এর indexAction কে কল করবে। view_manager সেকশনে আমরা ভিউ ফাইলের পাথও সেট করেছি।
৩. ভিউ তৈরি করা
এখন আপনার কন্ট্রোলারের indexAction অ্যাকশনটি যে ভিউ ফাইলটি রেন্ডার করবে, সেই ভিউ তৈরি করতে হবে। ভিউটি সাধারণত .phtml ফাইলে রাখা হয়।
ফোল্ডার স্ট্রাকচার:
module/Product/view/product/product/index.phtml
index.phtml:
<h1><?php echo $this->escapeHtml($message); ?></h1>
এই ভিউ ফাইলে আমরা $message ভেরিয়েবলটি রেন্ডার করেছি, যা কন্ট্রোলার থেকে ভিউতে পাঠানো হয়েছিল। escapeHtml ফাংশনটি HTML ইনপুট থেকে স্ক্রিপ্ট বা ইনজেকশন রোধ করতে ব্যবহৃত হয়।
৪. অ্যাপ্লিকেশন কনফিগারেশন
এখন আমাদের তৈরি করা মডিউলটি অ্যাপ্লিকেশনে সক্রিয় করতে হবে। এর জন্য config/application.config.php ফাইলে মডিউলটি রেজিস্টার করতে হবে।
ফোল্ডার স্ট্রাকচার:
config/application.config.php
application.config.php:
return [
'modules' => [
'Application',
'Product', // আমাদের নতুন মডিউল
],
'module_listener_options' => [
'config_glob_paths' => [
'config/autoload/{,*.}{global,local}.php',
],
],
];
এখানে Product মডিউলটি অ্যাপ্লিকেশনের মডিউল তালিকায় যোগ করা হয়েছে।
৫. অ্যাপ্লিকেশন চালানো
এখন সবকিছু তৈরি হয়ে গেছে। আপনার অ্যাপ্লিকেশন চালু করতে হবে এবং /product রাউটটিতে নেভিগেট করতে হবে। আপনি যদি সঠিকভাবে সবকিছু কনফিগার এবং কোড করেন, তবে আপনি Welcome to the Product Page! মেসেজটি ব্রাউজারে দেখতে পাবেন।
সারাংশ
Zend Framework বা Laminas এ একটি কন্ট্রোলার এবং অ্যাকশন তৈরি করা বেশ সহজ এবং মডুলার। প্রথমে আপনাকে একটি কন্ট্রোলার ক্লাস তৈরি করতে হবে যা AbstractActionController থেকে ইনহেরিট করবে। এরপর সেই কন্ট্রোলারে বিভিন্ন অ্যাকশন মেথড তৈরি করতে হবে, যেমন indexAction। রাউটিং কনফিগারেশন সঠিকভাবে সেট করা গুরুত্বপূর্ণ, যাতে ইউজারের রিকোয়েস্ট সঠিক কন্ট্রোলারের অ্যাকশনে রিডাইরেক্ট হয়। শেষে ভিউ ফাইল তৈরি করে, কন্ট্রোলার থেকে ডাটা পাঠিয়ে সেই ডাটা রেন্ডার করতে হবে।
Read more