Controller হলো CodeIgniter এর MVC (Model-View-Controller) আর্কিটেকচারের একটি গুরুত্বপূর্ণ অংশ। এটি অ্যাপ্লিকেশনের লজিক পরিচালনা করে এবং Model ও View এর মধ্যে সংযোগ স্থাপন করে। Controller ব্যবহারকারীর অনুরোধ গ্রহণ করে, প্রয়োজন অনুযায়ী Model থেকে ডেটা সংগ্রহ করে এবং View-এর মাধ্যমে সেই ডেটা প্রদর্শন করে।
Controller কী?
Controller হলো একটি PHP ক্লাস, যা CodeIgniter ফ্রেমওয়ার্কের CI_Controller ক্লাস থেকে উত্তরাধিকারী। এটি অ্যাপ্লিকেশনের লজিক সংজ্ঞায়িত করে এবং ব্যবহারকারীর রিকোয়েস্ট অনুযায়ী সাড়া দেয়।
Controller এর প্রধান দায়িত্ব
- রিকোয়েস্ট হ্যান্ডলিং: ব্যবহারকারীর ইনপুট গ্রহণ এবং প্রাসঙ্গিক রেসপন্স প্রদান।
- ডেটা প্রক্রিয়াকরণ: প্রয়োজন হলে Model ব্যবহার করে ডেটা সংগ্রহ বা প্রসেস করা।
- ভিউ লোড করা: প্রাসঙ্গিক View-এ ডেটা পাঠানো এবং আউটপুট তৈরি করা।
CodeIgniter এ Controller তৈরি
CodeIgniter এ Controller তৈরি করতে application/controllers ডিরেক্টরিতে একটি ক্লাস তৈরি করতে হয়। এই ক্লাসটি CI_Controller ক্লাস থেকে উত্তরাধিকারী হবে।
একটি সাধারণ Controller উদাহরণ:
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Welcome extends CI_Controller {
public function index() {
echo "Welcome to CodeIgniter!";
}
}
Controller এর ভূমিকা
১. ব্যবহারকারীর রিকোয়েস্ট পরিচালনা
Controller ব্যবহারকারীর HTTP রিকোয়েস্ট (GET/POST) গ্রহণ করে এবং সেই অনুযায়ী কাজ করে।
উদাহরণ:
public function handle_request() {
$name = $this->input->get('name');
echo "Hello, " . $name;
}
২. Model এর মাধ্যমে ডেটা প্রসেস করা
Controller Model ব্যবহার করে ডাটাবেস থেকে ডেটা রিট্রিভ করে এবং ভিউতে পাঠায়।
উদাহরণ:
public function show_users() {
$this->load->model('User_model');
$data['users'] = $this->User_model->get_users();
$this->load->view('users_list', $data);
}
৩. View এ ডেটা পাস করা
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);
}
ডিফল্ট Controller
CodeIgniter একটি ডিফল্ট Controller সমর্থন করে, যা অ্যাপ্লিকেশনের মূল রুটে অ্যাক্সেস করলে প্রদর্শিত হয়। ডিফল্ট Controller সেট করার জন্য application/config/routes.php ফাইলে নিম্নলিখিত লাইনটি ব্যবহার করা হয়:
$route['default_controller'] = 'Welcome';
Controller এর বৈশিষ্ট্য
- ডাইনামিক মেথড: Controller ক্লাসের প্রতিটি মেথড একটি আলাদা পেজ বা ফাংশন হিসেবে কাজ করে।
- ডাটাবেস ইন্টিগ্রেশন: Controller Model এর মাধ্যমে ডাটাবেস থেকে ডেটা এনে প্রয়োজনীয় আউটপুট তৈরি করে।
- ইনপুট হ্যান্ডলিং: Controller ব্যবহারকারীর ইনপুট (যেমন GET, POST, COOKIE) সঠিকভাবে প্রক্রিয়া করতে পারে।
- ভিউ কন্ট্রোল: প্রাসঙ্গিক View লোড এবং প্রক্রিয়াকরণ পরিচালনা করে।
Controller এর সুবিধা
- কোডের রক্ষণাবেক্ষণ সহজ: লজিক এবং উপস্থাপনাকে আলাদা করার কারণে কোড পড়া এবং আপডেট করা সহজ হয়।
- ডেভেলপমেন্ট দ্রুত হয়: বিভিন্ন ফাংশন পৃথক মেথডে ভাগ করার ফলে কাজ দ্রুত হয়।
- মডুলার স্ট্রাকচার: অ্যাপ্লিকেশনের ফাংশনালিটি মডুলার করা যায়, যা রিইউজেবিলিটি বাড়ায়।
Controller হলো CodeIgniter এর একটি অপরিহার্য অংশ, যা অ্যাপ্লিকেশন লজিক পরিচালনা এবং Model ও View এর মধ্যে সেতু হিসেবে কাজ করে। এটি ব্যবহারকারীর রিকোয়েস্ট গ্রহণ করে, প্রয়োজনীয় ডেটা প্রক্রিয়া করে এবং ভিউতে আউটপুট প্রদান করে।
Read more