Controllers হলো CodeIgniter ফ্রেমওয়ার্কের একটি গুরুত্বপূর্ণ উপাদান। এটি Model এবং View এর মধ্যে সংযোগ স্থাপন করে। Controllers অ্যাপ্লিকেশনের ব্যবসায়িক লজিক (business logic) পরিচালনা করে এবং ব্যবহারকারীর ইনপুট অনুযায়ী মডেল বা ভিউ থেকে প্রয়োজনীয় ডেটা সংগ্রহ করে।
CodeIgniter এ, একটি Controller মূলত ব্যবহারকারীর রিকোয়েস্ট গ্রহণ করে এবং সঠিক Model এবং View কে নির্দেশ দেয়। এটি অ্যাপ্লিকেশনের লজিক পরিচালনার জন্য কেন্দ্রীয় পয়েন্ট হিসাবে কাজ করে।
CodeIgniter এর ডিফল্ট Controller হলো Welcome.php
, যা আপনি পাবেন app/Controllers/
ফোল্ডারে। এটি একটি সিম্পল Controller হিসেবে কাজ করে এবং CodeIgniter ইনস্টল করার পরে প্রথম পেজ হিসেবে লোড হয়।
app/Controllers/
ফোল্ডারে একটি PHP ফাইল তৈরি করুন। উদাহরণস্বরূপ: MyController.php
Controller কোড লিখুন:
<?php
namespace App\Controllers;
use CodeIgniter\Controller;
class MyController extends Controller {
public function index() {
echo "Hello, this is my first controller!";
}
public function greet($name = "Guest") {
echo "Hello, " . esc($name) . "!";
}
}
বিস্তারিত:
namespace App\Controllers;
: CodeIgniter এর ডিফল্ট নেমস্পেস।extends Controller;
: এটি নিশ্চিত করে যে ক্লাসটি CodeIgniter এর মূল Controller থেকে উত্তরাধিকারী।index()
: প্রতিটি Controller এর একটি ডিফল্ট মেথড থাকতে হয়, যা রিকোয়েস্টের উত্তর দেয়।CodeIgniter এ ডিফল্ট Controller রাউট কনফিগার করার জন্য app/Config/Routes.php
ফাইলটি এডিট করুন:
$routes->get('/', 'MyController::index');
এটি নিশ্চিত করে যে http://localhost/
অ্যাক্সেস করলে MyController
এর index()
মেথড লোড হবে।
কাস্টম রাউট যোগ করতে পারেন:
$routes->get('greet/(:any)', 'MyController::greet/$1');
উপরের রাউট অনুযায়ী:
http://localhost/greet/John
-> "Hello, John!" প্রদর্শন করবে।http://localhost/greet
-> "Hello, Guest!" প্রদর্শন করবে।Controller এর মাধ্যমে Model লোড করে ডাটাবেস অপারেশন পরিচালনা করা যায়। উদাহরণ:
public function getProducts() {
$model = new \App\Models\ProductModel();
$products = $model->findAll();
echo json_encode($products);
}
Controller থেকে View লোড করতে:
public function show() {
return view('welcome_message');
}
welcome_message.php
ফাইলটি app/Views/
ফোল্ডারে থাকতে হবে।
Controller থেকে View এ ডাটা পাস করার জন্য:
public function userDetails() {
$data['name'] = 'John Doe';
$data['email'] = 'john@example.com';
return view('user_profile', $data);
}
esc()
ফাংশন: ইনপুট বা আউটপুট নিরাপদ রাখতে ব্যবহার করুন।CodeIgniter এর Controller অ্যাপ্লিকেশনের লজিক এবং ইউজার ইন্টারঅ্যাকশন পরিচালনা করার জন্য কেন্দ্রীয় ভূমিকা পালন করে। এটি ব্যবহার করে আপনি দ্রুত এবং সঠিকভাবে ওয়েব অ্যাপ্লিকেশন তৈরি করতে পারবেন।
Controller হলো CodeIgniter এর MVC (Model-View-Controller) আর্কিটেকচারের একটি গুরুত্বপূর্ণ অংশ। এটি অ্যাপ্লিকেশনের লজিক পরিচালনা করে এবং Model ও View এর মধ্যে সংযোগ স্থাপন করে। Controller ব্যবহারকারীর অনুরোধ গ্রহণ করে, প্রয়োজন অনুযায়ী Model থেকে ডেটা সংগ্রহ করে এবং View-এর মাধ্যমে সেই ডেটা প্রদর্শন করে।
Controller হলো একটি PHP ক্লাস, যা CodeIgniter ফ্রেমওয়ার্কের CI_Controller
ক্লাস থেকে উত্তরাধিকারী। এটি অ্যাপ্লিকেশনের লজিক সংজ্ঞায়িত করে এবং ব্যবহারকারীর রিকোয়েস্ট অনুযায়ী সাড়া দেয়।
CodeIgniter এ Controller তৈরি করতে application/controllers
ডিরেক্টরিতে একটি ক্লাস তৈরি করতে হয়। এই ক্লাসটি CI_Controller
ক্লাস থেকে উত্তরাধিকারী হবে।
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Welcome extends CI_Controller {
public function index() {
echo "Welcome to CodeIgniter!";
}
}
Controller ব্যবহারকারীর HTTP রিকোয়েস্ট (GET/POST) গ্রহণ করে এবং সেই অনুযায়ী কাজ করে।
উদাহরণ:
public function handle_request() {
$name = $this->input->get('name');
echo "Hello, " . $name;
}
Controller Model ব্যবহার করে ডাটাবেস থেকে ডেটা রিট্রিভ করে এবং ভিউতে পাঠায়।
উদাহরণ:
public function show_users() {
$this->load->model('User_model');
$data['users'] = $this->User_model->get_users();
$this->load->view('users_list', $data);
}
Controller প্রাসঙ্গিক View লোড করে এবং ডেটা পাঠায়।
উদাহরণ:
public function about_page() {
$data['title'] = "About Us";
$data['content'] = "This is the about page of our website.";
$this->load->view('about', $data);
}
CodeIgniter একটি ডিফল্ট Controller সমর্থন করে, যা অ্যাপ্লিকেশনের মূল রুটে অ্যাক্সেস করলে প্রদর্শিত হয়। ডিফল্ট Controller সেট করার জন্য application/config/routes.php
ফাইলে নিম্নলিখিত লাইনটি ব্যবহার করা হয়:
$route['default_controller'] = 'Welcome';
Controller হলো CodeIgniter এর একটি অপরিহার্য অংশ, যা অ্যাপ্লিকেশন লজিক পরিচালনা এবং Model ও View এর মধ্যে সেতু হিসেবে কাজ করে। এটি ব্যবহারকারীর রিকোয়েস্ট গ্রহণ করে, প্রয়োজনীয় ডেটা প্রক্রিয়া করে এবং ভিউতে আউটপুট প্রদান করে।
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 এ কন্ট্রোলার তৈরি এবং কনফিগার করতে পারবেন।
CodeIgniter-এ Controller অ্যাপ্লিকেশনের লজিক পরিচালনা করে। এটি ইউজারের রিকোয়েস্ট গ্রহণ করে, প্রয়োজনীয় Model ও View এর সাথে ইন্টারঅ্যাক্ট করে এবং আউটপুট প্রদর্শন করে। Methods এবং Functions ব্যবহার করে Controller এই কাজগুলো সম্পাদন করে।
CodeIgniter-এ Controller একটি ক্লাস হিসেবে সংজ্ঞায়িত হয়। এটি CI_Controller
ক্লাসকে এক্সটেন্ড করে।
উদাহরণ:
<?php
namespace App\Controllers;
class Home extends BaseController {
public function index() {
echo "Welcome to CodeIgniter!";
}
}
index()
Method চালিত হয়।উদাহরণ:
public function index() {
echo "This is the default method.";
}
Controller-এ আপনি কাস্টম Methods যোগ করতে পারেন এবং সেগুলো রাউটিংয়ের মাধ্যমে কল করতে পারেন।
উদাহরণ:
public function about() {
echo "This is the About page.";
}
Methods-এ Parameter পাস করা যায়। Parameter ইউজারের রিকোয়েস্ট থেকে সংগ্রহ করা ডেটা হিসেবে কাজ করে।
উদাহরণ:
public function greet($name = "Guest") {
echo "Hello, " . $name . "!";
}
http://localhost/home/greet/John
Hello, John!
একাধিক Parameter পাস করার সুবিধা রয়েছে।
উদাহরণ:
public function details($id, $category) {
echo "ID: " . $id . " | Category: " . $category;
}
http://localhost/home/details/5/electronics
ID: 5 | Category: electronics
Controller থেকে View লোড করার জন্য view()
Method ব্যবহার করা হয়।
উদাহরণ:
public function index() {
return view('welcome_message');
}
Controller থেকে View-তে ডেটা পাঠানো যায়।
উদাহরণ:
public function about() {
$data = ['title' => 'About Us', 'content' => 'This is the About Us page.'];
return view('about', $data);
}
Model ব্যবহার করে ডেটা সংগ্রহ এবং প্রসেসিং করা যায়।
উদাহরণ:
public function products() {
$productModel = new \App\Models\ProductModel();
$data['products'] = $productModel->findAll();
return view('product_list', $data);
}
Controller এর Private Methods শুধুমাত্র একই Controller এর মধ্যেই ব্যবহারযোগ্য। এগুলো বাইরের রিকোয়েস্ট দ্বারা অ্যাক্সেসযোগ্য নয়।
উদাহরণ:
private function helperFunction() {
return "This is a private method.";
}
Protected Methods ও বাইরের রিকোয়েস্ট থেকে অ্যাক্সেসযোগ্য নয়, তবে Controller-এর সাব-ক্লাস থেকে অ্যাক্সেস করা যায়।
উদাহরণ:
protected function calculate() {
return 5 + 5;
}
<?php
namespace App\Controllers;
class Blog extends BaseController {
public function index() {
echo "Welcome to the Blog!";
}
public function post($id) {
echo "This is post number " . $id;
}
public function author($name = "Unknown") {
echo "Author: " . $name;
}
}
উদাহরণ URL:
http://localhost/blog/
→ "Welcome to the Blog!"http://localhost/blog/post/3
→ "This is post number 3"http://localhost/blog/author/John
→ "Author: John"CodeIgniter-এর Controller এর Methods এবং Functions অ্যাপ্লিকেশনের লজিক পরিচালনার কেন্দ্রবিন্দু। এগুলো বিভিন্ন রিকোয়েস্ট প্রসেস করে এবং Model ও View এর সাথে কাজ করে ব্যবহারকারীর জন্য আউটপুট তৈরি করে। প্রয়োজন অনুযায়ী কাস্টম Methods তৈরি করে অ্যাপ্লিকেশনকে আরও কার্যকর করা যায়।
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 ব্যবহারের মাধ্যমে আপনার অ্যাপ্লিকেশন মডুলার এবং রক্ষণাবেক্ষণযোগ্য হবে। এটি ডেভেলপমেন্ট প্রসেসকে দ্রুত এবং কার্যকরী করে তোলে।
Read more