Controller হলো CodeIgniter এর গুরুত্বপূর্ণ উপাদান, যা ইউজার রিকোয়েস্ট গ্রহণ করে, প্রাসঙ্গিক মডেল ও ভিউ লোড করে এবং আউটপুট প্রেরণ করে। CodeIgniter এ MVC (Model-View-Controller) আর্কিটেকচারের অংশ হিসেবে কন্ট্রোলার অ্যাপ্লিকেশনের লজিক পরিচালনা করে।
CodeIgniter এ কন্ট্রোলার একটি PHP ক্লাস, যা CI_Controller
-এর সাবক্লাস। প্রতিটি কন্ট্রোলার ফাইল app/Controllers
ডিরেক্টরিতে রাখা হয়।
app/Controllers
ডিরেক্টরিতে যান।Welcome.php
)।CI_Controller
থেকে এক্সটেন্ড করুন এবং namespace App\Controllers;
ব্যবহার করুন।<?php
namespace App\Controllers;
class Welcome extends BaseController
{
public function index()
{
return "Welcome to CodeIgniter!";
}
}
CodeIgniter এ ডিফল্ট কন্ট্রোলার সেট করা হয় app/Config/Routes.php
ফাইলে।
app/Config/Routes.php
ফাইলটি খুলুন।ডিফল্ট কন্ট্রোলার নির্ধারণ করতে:
$routes->setDefaultController('Welcome'); // 'Welcome' ক্লাস ডিফল্ট কন্ট্রোলার
কাস্টম URL নির্ধারণ করতে:
$routes->get('about', 'Pages::about'); // 'Pages' ক্লাসের 'about' মেথড
কন্ট্রোলারে প্রতিটি ফাংশন (মেথড) একটি রিকোয়েস্ট হ্যান্ডল করে। একটি মেথডের মাধ্যমে ডেটা প্রক্রিয়া করা যায় এবং প্রাসঙ্গিক ভিউ প্রদর্শন করা যায়।
<?php
namespace App\Controllers;
class Pages extends BaseController
{
public function home()
{
return view('home'); // 'home' ভিউ লোড
}
public function about()
{
return view('about'); // 'about' ভিউ লোড
}
}
CodeIgniter এর মডেল ব্যবহার করতে কন্ট্রোলারে লোড করতে হয়।
<?php
namespace App\Controllers;
use App\Models\ProductModel;
class Product extends BaseController
{
public function index()
{
$productModel = new ProductModel();
$data['products'] = $productModel->findAll(); // ডাটাবেস থেকে সমস্ত ডেটা আনা
return view('product_list', $data); // ভিউ-এ ডেটা পাঠানো
}
}
return view('view_name', $data);
view_name
হলো ভিউ ফাইলের নাম।$data
একটি অ্যারে, যা ভিউতে ডেটা পাঠায়।কন্ট্রোলারের মেথড অ্যাক্সেস করতে ব্রাউজারে নিচের মতো URL ব্যবহার করুন:
http://localhost/your_project_name/controller_name/method_name
উদাহরণ:
http://localhost/your_project_name/welcome/index
যদি index মেথড ডিফল্ট হয়, তাহলে মেথড নাম না দিলেও কাজ করবে:
http://localhost/your_project_name/welcome
Middleware ব্যবহার করে কন্ট্রোলারে সিকিউরিটি বা অন্যান্য কার্যক্রম পরিচালনা করা যায়।
$routes->get('admin', 'Admin::index', ['filter' => 'auth']);
নির্দিষ্ট ফাংশনে এক্সেস নিয়ন্ত্রণ করতে পারেন:
if (!session()->get('isLoggedIn')) {
return redirect()->to('/login');
}
app/Controllers
ডিরেক্টরিতে নতুন ফাইল তৈরি করুন।Routes.php
ফাইলের মাধ্যমে।এই ধাপগুলো অনুসরণ করে আপনি CodeIgniter এ কন্ট্রোলার তৈরি এবং কনফিগার করতে পারবেন।
Read more