Zend Framework (এখন Laminas) অ্যাপ্লিকেশনে কাস্টম এরর পেজ তৈরি করা খুবই গুরুত্বপূর্ণ, কারণ এটি ইউজারকে একটি সুন্দর এবং প্রফেশনাল এক্সপেরিয়েন্স প্রদান করে যখন কোনো সমস্যা বা ভুল ঘটে। যখন একটি ত্রুটি বা ভুল সংঘটিত হয়, তখন ইউজারকে শুধুমাত্র একটি সাধারণ ত্রুটি বার্তা দেখানোর পরিবর্তে, আপনি কাস্টমাইজড এরর পেজ ব্যবহার করে একটি ভালো সমাধান দিতে পারেন।
Zend Framework এ কাস্টম এরর পেজ তৈরি করা অনেকটা সহজ এবং এটি বিভিন্ন ধরনের HTTP স্ট্যাটাস কোডের জন্য কাস্টম পেজ সেট করতে সহায়তা করে, যেমন 404 (Not Found), 500 (Internal Server Error), ইত্যাদি।
কাস্টম এরর পেজ তৈরি করার ধাপসমূহ
১. ErrorController তৈরি করা
Zend Framework এ একটি ErrorController তৈরি করতে হয়, যেটি সমস্ত এরর পেজের জন্য রেন্ডার করবে। এই কন্ট্রোলারটি সাধারণত module/Application/src/Controller ডিরেক্টরিতে রাখা হয়।
এখানে একটি সাধারণ ErrorController এর উদাহরণ:
namespace Application\Controller;
use Laminas\Mvc\Controller\AbstractActionController;
use Laminas\View\Model\ViewModel;
class ErrorController extends AbstractActionController
{
public function errorAction()
{
// Error model তৈরি করা
$exception = $this->params()->fromRoute('error', null);
// এখানে আপনি বিভিন্ন error code চেক করতে পারেন
switch ($exception) {
case '404':
$this->response->setStatusCode(404);
break;
case '500':
$this->response->setStatusCode(500);
break;
default:
$this->response->setStatusCode(400);
break;
}
// কাস্টম এরর পেজে প্রয়োজনীয় ডাটা পাঠানো
return new ViewModel([
'exception' => $exception,
]);
}
}
এখানে errorAction() মেথডটি error রুট থেকে এরর সম্পর্কিত তথ্য নিয়ে আসে এবং এরর কোডের উপর ভিত্তি করে উপযুক্ত HTTP স্ট্যাটাস কোড সেট করে। এর পর, এটি কাস্টম ভিউ মডেল রিটার্ন করে যা কাস্টম এরর পেজে প্রদর্শিত হবে।
২. Error View তৈরি করা
এবার আপনাকে কাস্টম এরর পেজের জন্য ভিউ তৈরি করতে হবে। ভিউ ফাইলগুলো সাধারণত module/Application/view/application/error ডিরেক্টরিতে রাখা হয়।
নিচে একটি সাধারণ error.phtml ভিউ ফাইলের উদাহরণ:
<h1>Oops! Something went wrong!</h1>
<?php if ($exception == '404'): ?>
<p>Sorry, the page you are looking for could not be found.</p>
<?php elseif ($exception == '500'): ?>
<p>Sorry, something went wrong on our end. Please try again later.</p>
<?php else: ?>
<p>An unexpected error has occurred.</p>
<?php endif; ?>
<p><a href="<?php echo $this->url('home'); ?>">Go back to home page</a></p>
এই পেজে, exception প্যারামিটারটি চেক করা হচ্ছে যা এরর টাইপের উপর ভিত্তি করে কাস্টম বার্তা দেখাবে। এখানে 404 এবং 500 এরর কোডের জন্য আলাদা মেসেজ দেয়া হয়েছে।
৩. Error রাউটিং কনফিগারেশন
Zend Framework এ কাস্টম এরর পেজে রিডাইরেক্ট বা রাউটিং কনফিগার করতে module/Application/config/module.config.php ফাইলে কিছু কনফিগারেশন যোগ করতে হয়। এটি আপনাকে কাস্টম এরর কন্ট্রোলারের জন্য রাউটিং সেট করতে সাহায্য করবে।
return [
'router' => [
'routes' => [
'error' => [
'type' => 'Literal',
'options' => [
'route' => '/error',
'defaults' => [
'controller' => 'Application\Controller\Error',
'action' => 'error',
],
],
],
],
],
'view_manager' => [
'template_map' => [
'error/404' => __DIR__ . '/../view/error/404.phtml',
'error/index' => __DIR__ . '/../view/error/index.phtml',
],
'template_path_stack' => [
'application' => __DIR__ . '/../view',
],
],
];
এখানে, router সেকশনে /error রুটটি কনফিগার করা হয়েছে, যাতে যেকোনো এরর হলে ইউজারকে এই পেজে রিডাইরেক্ট করা যায়। view_manager এর মধ্যে error/404 এবং error/index টেমপ্লেটের পাথ উল্লেখ করা হয়েছে।
৪. HTTP স্ট্যাটাস কোড কাস্টমাইজেশন
Zend Framework এর errorAction মেথডে HTTP স্ট্যাটাস কোড সেট করতে পারেন। যেমন 404 পেজের জন্য 404 Not Found এবং 500 পেজের জন্য 500 Internal Server Error সেট করতে পারেন। এটা ব্যবহারকারীর ব্রাউজারে সঠিক ত্রুটি কোড পাঠাতে সহায়ক হয়।
$this->response->setStatusCode(404); // 404 পেজের জন্য
$this->response->setStatusCode(500); // 500 পেজের জন্য
৫. Error Logging (ত্রুটি লগিং)
Zend Framework ত্রুটি লগিংয়ের জন্য অনেক সুবিধা প্রদান করে। যদি আপনি চাচ্ছেন যে, ত্রুটিগুলো লগ হোক, তবে logger কনফিগারেশন যোগ করতে পারেন।
module.config.php ফাইলে লগিং কনফিগারেশন যুক্ত করুন:
'log' => [
'logger' => [
'name' => 'error_log',
'writer' => [
'name' => 'Stream',
'options' => [
'stream' => 'data/logs/error.log',
],
],
],
],
এটি ত্রুটিগুলোর একটি লগ ফাইল তৈরি করবে যেটি পরবর্তীতে ডিবাগিং বা মনিটরিংয়ের জন্য ব্যবহৃত হতে পারে।
৬. Custom 404 এবং 500 Error Pages
আপনি আলাদা আলাদা 404 এবং 500 এরর পেজও তৈরি করতে পারেন। উদাহরণস্বরূপ:
404.phtml:
<h1>Page Not Found (404)</h1>
<p>Sorry, the page you are looking for does not exist.</p>
500.phtml:
<h1>Internal Server Error (500)</h1>
<p>Sorry, something went wrong on our end. Please try again later.</p>
এগুলো ভিউ ফোল্ডারে error/404.phtml এবং error/500.phtml নাম দিয়ে রাখা হবে।
সারাংশ
Zend Framework এ কাস্টম এরর পেজ তৈরি করার জন্য ErrorController তৈরি করতে হয়, যেখানে বিভিন্ন এরর স্ট্যাটাস কোড অনুযায়ী ইউজারকে উপযুক্ত কাস্টম বার্তা দেখানো হয়। আপনি কাস্টম ভিউ ফাইল, রাউটিং কনফিগারেশন, এবং HTTP স্ট্যাটাস কোড কাস্টমাইজ করে এরর পেজ তৈরি করতে পারেন। এভাবে, আপনি ইউজারদের একটি ভালো এবং প্রফেশনাল এক্সপেরিয়েন্স প্রদান করতে পারেন যখন তারা আপনার অ্যাপ্লিকেশন ব্যবহারের সময় ত্রুটি সম্মুখীন হয়।
Read more