PHP-তে MVC-তে রাউটে প্যারামিটার প্রয়োগ
আসুন বাস্তব জীবনের উদাহরণে বর্ণিত প্রয়োগটি দেখি। ধরুন আমাদের কন্ট্রোলার
PageController-এ পৃষ্ঠাগুলির একটি অ্যারে রয়েছে
(এই ডেটা মডেল দ্বারা প্রদান করা উচিত, কিন্তু আমরা
এখনও মডেলগুলি নিয়ে আলোচনা করিনি, তাই এখন ডেটা
শুধু কন্ট্রোলারে সংরক্ষিত থাকুক):
<?php
namespace Project\Controllers;
use Core\Controller;
class PageController extends Controller
{
private $pages;
public function __construct()
{
$this->pages = [
1 => 'page 1',
2 => 'page 2',
3 => 'page 3',
];
}
}
?>
আসুন একটি অ্যাকশন show তৈরি করি, যা
একটি নির্দিষ্ট নম্বর (id) সহ পৃষ্ঠাটি
প্রদর্শন করবে:
<?php
namespace Project\Controllers;
use Core\Controller;
class PageController extends Controller
{
private $pages;
public function __construct()
{
$this->pages = [
1 => 'page 1',
2 => 'page 2',
3 => 'page 3',
];
}
public function show()
{
// এখানে একটি নির্দিষ্ট নম্বর সহ পৃষ্ঠাটি প্রদর্শন করব
}
}
?>
ধরুন /page/1/ ঠিকানায়アクセス করলে
প্রথম পৃষ্ঠার পাঠ্য প্রদর্শিত হবে,
/page/2/ ঠিকানায়アクセス করলে -
দ্বিতীয় পৃষ্ঠার পাঠ্য এবং তাই। আসুন
সংশ্লিষ্ট রাউট তৈরি করি:
<?php
use \Core\Route;
return [
new Route('/page/:id/', 'page', 'show'),
];
?>
আসুন বর্ণিত পদ্ধতি show বাস্তবায়ন করি:
<?php
namespace Project\Controllers;
use Core\Controller;
class PageController extends Controller
{
private $pages;
public function __construct()
{
$this->pages = [
1 => 'page 1',
2 => 'page 2',
3 => 'page 3',
];
}
public function show($params)
{
echo $this->pages[ $params['id'] ]; // নম্বর অনুসারে পৃষ্ঠা প্রদর্শন করি
}
}
?>
UserController কন্ট্রোলারটি বাস্তবায়ন করুন,
যাতে নিম্নলিখিত অ্যারে রয়েছে:
<?php
$this->users = [
1 => ['name'=>'user1', 'age'=>'23', 'salary' => 1000],
2 => ['name'=>'user2', 'age'=>'24', 'salary' => 2000],
3 => ['name'=>'user3', 'age'=>'25', 'salary' => 3000],
4 => ['name'=>'user4', 'age'=>'26', 'salary' => 4000],
5 => ['name'=>'user5', 'age'=>'27', 'salary' => 5000],
];
?>
UserController কন্ট্রোলারে, একটি
অ্যাকশন show তৈরি করুন, যা একটি নির্দিষ্ট
id অনুসারে ব্যবহারকারী প্রদর্শন করবে। এটি
নিম্নলিখিত ধরনের ঠিকানায় উপলব্ধ হোক:
/user/:id/।
UserController কন্ট্রোলারে, একটি
অ্যাকশন info তৈরি করুন, যা একটি নির্দিষ্ট
ব্যবহারকারীর নাম বা বয়স প্রদর্শন করবে। এই
অ্যাকশনটি নিম্নলিখিত ধরনের ঠিকানায় উপলব্ধ হোক:
/user/:id/:key/, যেখানে key
এর মান হবে 'name', 'age'
বা 'salary'।
UserController কন্ট্রোলারে, একটি
অ্যাকশন all তৈরি করুন, যা
সমস্ত ব্যবহারকারীর তালিকা স্ক্রিনে প্রদর্শন করবে। এই অ্যাকশনটি
নিম্নলিখিত ধরনের ঠিকানায় উপলব্ধ হোক:
/user/all/ (এখানে কোন প্যারামিটার
থাকবে না)।
UserController কন্ট্রোলারে, একটি
অ্যাকশন first তৈরি করুন, যা
প্রথম N সংখ্যক ব্যবহারকারীর তালিকা স্ক্রিনে প্রদর্শন করবে। এই
অ্যাকশনটি নিম্নলিখিত ধরনের ঠিকানায় উপলব্ধ হোক:
/user/first/:n/, যেখানে প্যারামিটারে
ব্যবহারকারীর সংখ্যা থাকবে, যাদের
স্ক্রিনে প্রদর্শন করতে হবে।