Routes CodeIgniter-এ URL এবং Controller এর মধ্যে সংযোগ স্থাপন করে। এটি নির্ধারণ করে যে, কোনো নির্দিষ্ট URL রিকোয়েস্ট কীভাবে প্রক্রিয়াজাত হবে এবং কোন Controller এবং Method কল হবে। CodeIgniter-এ দুটি প্রকারের Routes রয়েছে:
Static Routes ব্যবহার করে একটি নির্দিষ্ট URL এর জন্য নির্দিষ্ট Controller এবং Method কল করা হয়।
Static Route তৈরি করতে app/Config/Routes.php
ফাইলে নিচের মতো কোড লিখতে হয়:
$routes->get('about', 'Pages::about');
http://localhost/about
Pages::about
<?php
namespace App\Controllers;
class Pages extends BaseController {
public function about() {
echo "This is the About page.";
}
}
Dynamic Routes ব্যবহার করে URL এর অংশ হিসেবে ডাইনামিক ডেটা পাস করা যায়। এগুলো সাধারণত URL এর Parameter হিসাবে কাজ করে।
$routes->get('product/(:any)', 'Products::details/$1');
http://localhost/product/laptop
Products::details('laptop')
<?php
namespace App\Controllers;
class Products extends BaseController {
public function details($name) {
echo "Product Name: " . $name;
}
}
$routes->get('product/(:num)/(:alpha)', 'Products::details/$1/$2');
http://localhost/product/101/laptop
Products::details(101, 'laptop')
Controller Method:
public function details($id, $name) {
echo "Product ID: " . $id . " | Product Name: " . $name;
}
CodeIgniter একটি ডিফল্ট Route সেটআপ করে, যা index()
Method কল করে।
app/Config/Routes.php
ফাইলের মধ্যে ডিফল্ট Route সংজ্ঞায়িত করা হয়:
$routes->get('/', 'Home::index');
<?php
namespace App\Controllers;
class Home extends BaseController {
public function index() {
echo "Welcome to CodeIgniter!";
}
}
CodeIgniter বিভিন্ন HTTP Verbs (GET, POST, PUT, DELETE) এর জন্য Routes নির্ধারণ করতে পারে।
$routes->get('about', 'Pages::about');
$routes->post('form-submit', 'Forms::submit');
$routes->put('update-profile', 'Users::update');
$routes->delete('delete-user/(:num)', 'Users::delete/$1');
Named Routes ব্যবহার করে Route এর জন্য একটি নির্দিষ্ট নাম সেট করা যায়। এটি পরবর্তী সময়ে Route-কে সহজে রেফারেন্স করতে সাহায্য করে।
$routes->get('dashboard', 'Admin::dashboard', ['as' => 'admin_dashboard']);
return redirect()->route('admin_dashboard');
Routes ডিক্লারেশনের ক্রম গুরুত্বপূর্ণ। CodeIgniter প্রথমে ডিফাইন্ড Route পরীক্ষা করে। যদি মিলে যায়, সেটি এক্সিকিউট হয়।
$routes->get('product/123', 'Products::special');
$routes->get('product/(:num)', 'Products::details/$1');
http://localhost/product/123
→ Products::special
কল হবে।http://localhost/product/456
→ Products::details/$1
কল হবে।Routes এর সাথে Filters যোগ করে ডেটা যাচাই বা Middleware যুক্ত করা যায়।
$routes->get('admin', 'Admin::index', ['filter' => 'auth']);
CodeIgniter-এ Static এবং Dynamic Routes ব্যবহার করে অ্যাপ্লিকেশনের URL গুলি কার্যকরভাবে পরিচালনা করা যায়। সঠিক Routes সেটআপ করলে অ্যাপ্লিকেশন আরও মডুলার এবং রক্ষণাবেক্ষণযোগ্য হয়। Static Routes নির্দিষ্ট পেজের জন্য এবং Dynamic Routes ডাইনামিক ডেটা পাসের জন্য আদর্শ।
Read more