Controller হলো CodeIgniter ফ্রেমওয়ার্কের অন্যতম গুরুত্বপূর্ণ উপাদান। এটি Model এবং View এর মধ্যে যোগাযোগ স্থাপন করে এবং অ্যাপ্লিকেশনের কার্যপ্রবাহ নিয়ন্ত্রণ করে। Controller ব্যবহার করে আপনি ডেটা ম্যানিপুলেট করতে পারেন এবং ভিউতে পাঠাতে পারেন।
CodeIgniter-এ Controller হলো একটি PHP ক্লাস, যা app/Controllers
ডিরেক্টরিতে সংরক্ষিত থাকে। এটি ব্যবহারকারী থেকে ইনপুট গ্রহণ করে, প্রাসঙ্গিক Model থেকে ডেটা রিট্রিভ করে এবং সেই ডেটা View এ পাঠায়।
app/Controllers
ডিরেক্টরিতে একটি ফাইল তৈরি করুন। উদাহরণ: ProductController.php
কন্ট্রোলারের ক্লাস ডিফাইন করুন:
<?php
namespace App\Controllers;
use App\Models\ProductModel;
class ProductController extends BaseController
{
public function index()
{
// ডিফল্ট ভিউ লোড করা
return view('welcome_message');
}
}
এখানে index()
হলো ডিফল্ট মেথড, যা /product
URL এ অ্যাক্সেস করলে চালু হবে।
View হলো HTML ফাইল যা অ্যাপ্লিকেশনের আউটপুট প্রদর্শনের জন্য ব্যবহৃত হয়।
app/Views
ডিরেক্টরিতে একটি ফাইল তৈরি করুন। উদাহরণ: product_list.php
HTML যোগ করুন:
<h1>Product List</h1>
<ul>
<?php if(isset($products)): ?>
<?php foreach ($products as $product): ?>
<li><?= $product['name']; ?> - <?= $product['price']; ?></li>
<?php endforeach; ?>
<?php else: ?>
<li>No products found.</li>
<?php endif; ?>
</ul>
public function index()
{
$data['products'] = [
['name' => 'Product 1', 'price' => 100],
['name' => 'Product 2', 'price' => 200],
];
return view('product_list', $data);
}
এখানে $data
অ্যারে ভিউতে পাঠানো হবে এবং ভিউ সেই ডেটা প্রদর্শন করবে।
Model মূলত ডেটাবেসের সাথে যোগাযোগ করে। Controller থেকে Model ব্যবহার করে ডেটাবেসের ডেটা রিট্রিভ বা ম্যানিপুলেট করা যায়।
app/Models
ডিরেক্টরিতে একটি ফাইল তৈরি করুন। উদাহরণ: ProductModel.php
মডেলের কোড যোগ করুন:
<?php
namespace App\Models;
use CodeIgniter\Model;
class ProductModel extends Model
{
protected $table = 'products';
protected $allowedFields = ['name', 'price'];
}
public function index()
{
$productModel = new \App\Models\ProductModel();
$data['products'] = $productModel->findAll(); // সমস্ত পণ্য রিট্রিভ করা
return view('product_list', $data);
}
এখানে findAll()
মেথড ব্যবহার করে ডেটাবেস থেকে সমস্ত পণ্য রিট্রিভ করা হয়েছে।
<?php
namespace App\Controllers;
use App\Models\ProductModel;
class ProductController extends BaseController
{
public function index()
{
$productModel = new ProductModel();
$data['products'] = $productModel->findAll(); // সমস্ত পণ্য রিট্রিভ করা
return view('product_list', $data); // ভিউ লোড করা
}
}
<?php
namespace App\Models;
use CodeIgniter\Model;
class ProductModel extends Model
{
protected $table = 'products';
protected $allowedFields = ['name', 'price'];
}
app/Views/product_list.php
)<h1>Product List</h1>
<ul>
<?php if(isset($products) && !empty($products)): ?>
<?php foreach ($products as $product): ?>
<li><?= $product['name']; ?> - <?= $product['price']; ?></li>
<?php endforeach; ?>
<?php else: ?>
<li>No products found.</li>
<?php endif; ?>
</ul>
CodeIgniter-এর Controller, Model, এবং View ব্যবহারের মাধ্যমে আপনার অ্যাপ্লিকেশন মডুলার এবং রক্ষণাবেক্ষণযোগ্য হবে। এটি ডেভেলপমেন্ট প্রসেসকে দ্রুত এবং কার্যকরী করে তোলে।