CodeIgniter ডেভেলপারদের কাজ সহজ করতে Libraries এবং Helpers সরবরাহ করে। Libraries হলো পূর্বনির্ধারিত ক্লাস, যা বিভিন্ন জটিল কার্যকলাপ পরিচালনা করে, আর Helpers হলো সাধারণ ফাংশনগুলোর একটি সেট, যা কোড পুনরায় ব্যবহারযোগ্য এবং সহজ করে তোলে।
Libraries হলো CodeIgniter-এ বিল্ট-ইন ক্লাস, যা বিভিন্ন কাজ সম্পাদনে সাহায্য করে। উদাহরণস্বরূপ, ইমেইল প্রেরণ, ফাইল আপলোড, সেশন ম্যানেজমেন্ট ইত্যাদি।
Libraries লোড করার জন্য service()
অথবা $this->
ব্যবহার করা যায়।
$email = \Config\Services::email(); // Service লোড করা
$this->session = \Config\Services::session(); // Session লোড করা
Session পরিচালনার জন্য ব্যবহার করা হয়।
$this->session = \Config\Services::session();
$this->session->set('user', 'John Doe'); // সেশন সেট
echo $this->session->get('user'); // সেশন রিড
ইমেইল পাঠানোর জন্য ব্যবহার করা হয়।
$email = \Config\Services::email();
$email->setFrom('your_email@example.com', 'Your Name');
$email->setTo('recipient@example.com');
$email->setSubject('Test Email');
$email->setMessage('This is a test email.');
if ($email->send()) {
echo 'Email sent successfully!';
} else {
echo $email->printDebugger();
}
ফাইল আপলোড পরিচালনা করে।
$validationRule = [
'file' => [
'label' => 'File',
'rules' => 'uploaded[file]|max_size[file,1024]|ext_in[file,png,jpg,gif]'
],
];
if (!$this->validate($validationRule)) {
echo $this->validator->getErrors();
} else {
$file = $this->request->getFile('file');
if ($file->isValid() && !$file->hasMoved()) {
$file->move(WRITEPATH . 'uploads');
echo 'File uploaded successfully!';
}
}
ফর্মের ইনপুট যাচাই করতে ব্যবহার করা হয়।
$validation = \Config\Services::validation();
$validation->setRules([
'username' => 'required|min_length[5]',
'email' => 'required|valid_email'
]);
if (!$validation->withRequest($this->request)->run()) {
print_r($validation->getErrors());
} else {
echo 'Form is valid!';
}
Helpers হলো সাধারণ ফাংশনের একটি সেট, যা অ্যাপ্লিকেশনে পুনরায় ব্যবহারযোগ্য কোড সরবরাহ করে। এগুলো সাধারণ কাজগুলো সহজ করতে ব্যবহার করা হয়, যেমন URL ম্যানিপুলেশন, ফর্ম তৈরির ফাংশন ইত্যাদি।
Helper লোড করতে helper()
ফাংশন ব্যবহার করা হয়।
helper('url'); // URL Helper লোড
URL ম্যানিপুলেশনের জন্য ব্যবহৃত হয়।
echo base_url(); // বেস URL রিটার্ন করবে
echo site_url('controller/method'); // নির্দিষ্ট রুটের জন্য URL রিটার্ন করবে
ফর্ম তৈরিতে সাহায্য করে।
helper('form');
echo form_open('controller/method');
echo form_input(['name' => 'username', 'id' => 'username']);
echo form_submit('submit', 'Submit');
echo form_close();
টেক্সট ফরম্যাট করার জন্য ব্যবহৃত হয়।
helper('text');
echo word_limiter('This is a long text that needs to be shortened.', 5);
তারিখ এবং সময় ফরম্যাট করার জন্য ব্যবহৃত হয়।
helper('date');
echo now(); // বর্তমান সময়ের টাইমস্ট্যাম্প
echo date('Y-m-d H:i:s', now()); // ফরম্যাট করা তারিখ
ডাউনলোড পরিচালনা করে।
helper('download');
$data = 'This is the file content.';
$name = 'example.txt';
force_download($name, $data);
Libraries | Helpers |
---|---|
ক্লাস-ভিত্তিক। | ফাংশন-ভিত্তিক। |
একাধিক কার্যকরী ফিচার সরবরাহ করে। | নির্দিষ্ট কাজের জন্য একাধিক ফাংশন সরবরাহ করে। |
ব্যবহার করতে আগে লোড করা প্রয়োজন। | Helper ফাংশন সরাসরি লোড করা যায়। |
CodeIgniter-এ Libraries এবং Helpers ব্যবহার করে অ্যাপ্লিকেশন ডেভেলপমেন্ট দ্রুত এবং কার্যকরভাবে সম্পন্ন করা যায়। এগুলো ডেভেলপারদের সময় সাশ্রয় এবং কোডের পুনরায় ব্যবহারযোগ্যতা বাড়ায়।
CodeIgniter এর Built-in Libraries ডেভেলপারদের জন্য একটি শক্তিশালী এবং ব্যবহারযোগ্য টুলসেট সরবরাহ করে, যা অ্যাপ্লিকেশন ডেভেলপমেন্টকে দ্রুত এবং কার্যকরী করে তোলে। এই লাইব্রেরিগুলো ডাটাবেস ম্যানেজমেন্ট, সেশন হ্যান্ডলিং, ইমেইল সেন্ডিং, ফাইল আপলোড এবং আরও অনেক কার্যক্রম সহজ করার জন্য ডিজাইন করা হয়েছে।
CodeIgniter এ Built-in Libraries লোড করার জন্য services()
বা load()
ফাংশন ব্যবহার করা হয়। উদাহরণস্বরূপ:
$session = \Config\Services::session();
লাইব্রেরি লোড করার পর এটি ব্যবহার করতে পারবেন। যেমন:
$session->set('user_id', 123);
সেশন ম্যানেজমেন্ট করার জন্য CodeIgniter এর সেশন লাইব্রেরি অত্যন্ত কার্যকর।
$session = \Config\Services::session();
$session->set('username', 'JohnDoe');
$username = $session->get('username');
$session->destroy();
ডাটাবেস পরিচালনা করার জন্য CodeIgniter এর ডাটাবেস লাইব্রেরি ব্যবহৃত হয়।
$db = \Config\Database::connect();
$query = $db->query("SELECT * FROM products");
$result = $query->getResult();
$builder = $db->table('products');
$products = $builder->get()->getResult();
CodeIgniter এর Email Library ইমেইল পাঠানোর জন্য ব্যবহৃত হয়।
$email = \Config\Services::email();
$email->setFrom('your@example.com', 'Your Name');
$email->setTo('receiver@example.com');
$email->setSubject('Email Test');
$email->setMessage('Testing the email class.');
if ($email->send()) {
echo "Email sent successfully!";
} else {
echo "Failed to send email.";
}
CodeIgniter এর File Upload Library ব্যবহার করে ফাইল আপলোড করা সহজ।
$validationRule = [
'userfile' => [
'label' => 'Image File',
'rules' => 'uploaded[userfile]|is_image[userfile]|max_size[userfile,1024]',
],
];
if ($this->validate($validationRule)) {
$file = $this->request->getFile('userfile');
$file->move(WRITEPATH . 'uploads');
echo "File uploaded successfully!";
} else {
echo "File upload failed!";
}
Form Validation ডেটার সঠিকতা যাচাই করতে ব্যবহৃত হয়।
$validation = \Config\Services::validation();
$validation->setRules([
'username' => 'required|min_length[3]',
'email' => 'required|valid_email',
]);
if ($validation->withRequest($this->request)->run()) {
echo "Form is valid!";
} else {
print_r($validation->getErrors());
}
CodeIgniter এর URI Library URL এবং URI সম্পর্কিত কাজ করতে ব্যবহৃত হয়।
$uri = service('uri');
echo $uri->getSegment(1); // প্রথম URI সেগমেন্ট
CodeIgniter ইমেজ রিসাইজ, ক্রপ এবং রোটেট করার জন্য একটি শক্তিশালী ইমেজ ম্যানিপুলেশন লাইব্রেরি সরবরাহ করে।
$image = \Config\Services::image()
->withFile('/path/to/image.jpg')
->resize(200, 200)
->save('/path/to/resized_image.jpg');
CodeIgniter এর Built-in Libraries ডেভেলপারদের কার্যক্রম সহজ করে এবং উন্নতমানের অ্যাপ্লিকেশন তৈরি করতে সহায়ক। এগুলো ব্যবহার করে দ্রুত এবং কার্যকর অ্যাপ্লিকেশন তৈরি করা সম্ভব।
CodeIgniter বিভিন্ন Helper Functions সরবরাহ করে, যা ডেভেলপমেন্ট প্রক্রিয়াকে সহজ এবং দ্রুত করে তোলে। এগুলো পুনরায় ব্যবহারযোগ্য ফাংশন, যা নির্দিষ্ট কাজ সম্পন্ন করতে সাহায্য করে। CodeIgniter এর Helper Functions গুলো বিভিন্ন ক্যাটাগরিতে বিভক্ত।
Helper লোড করা: Helper ব্যবহার করার আগে helper()
ফাংশন ব্যবহার করে লোড করতে হবে।
helper('form'); // Form Helper লোড করা
একাধিক Helper লোড করা:
helper(['form', 'url']); // Form এবং URL Helper লোড করা
Auto-load Helpers:app/Config/Autoload.php
ফাইলে Helpers যোগ করুন:
public $helpers = ['form', 'url'];
URL Helper URL তৈরির জন্য বিভিন্ন ফাংশন সরবরাহ করে।
Function | Description |
---|---|
base_url() | বেস URL রিটার্ন করে। |
site_url() | সাইটের পূর্ণ URL রিটার্ন করে। |
current_url() | বর্তমান পেজের সম্পূর্ণ URL রিটার্ন করে। |
previous_url() | আগের পেজের URL রিটার্ন করে। |
anchor() | HTML Anchor ট্যাগ তৈরি করে। |
উদাহরণ:
echo base_url(); // http://localhost/
echo site_url('products'); // http://localhost/products
echo anchor('products', 'View Products'); // <a href="http://localhost/products">View Products</a>
Form Helper ফর্ম তৈরির জন্য সহায়ক ফাংশন সরবরাহ করে।
Function | Description |
---|---|
form_open() | একটি ফর্মের শুরু ট্যাগ তৈরি করে। |
form_close() | ফর্মের শেষ ট্যাগ তৈরি করে। |
form_input() | টেক্সট ইনপুট তৈরি করে। |
form_password() | পাসওয়ার্ড ইনপুট তৈরি করে। |
form_dropdown() | ড্রপডাউন তৈরি করে। |
form_submit() | সাবমিট বাটন তৈরি করে। |
উদাহরণ:
echo form_open('form/submit');
echo form_input(['name' => 'username', 'placeholder' => 'Username']);
echo form_password(['name' => 'password', 'placeholder' => 'Password']);
echo form_submit('submit', 'Login');
echo form_close();
Text Helper বিভিন্ন টেক্সট প্রক্রিয়াকরণের জন্য ফাংশন সরবরাহ করে।
Function | Description |
---|---|
word_limiter() | নির্দিষ্ট শব্দের পরে টেক্সট কেটে দেয়। |
character_limiter() | নির্দিষ্ট ক্যারেক্টারের পরে টেক্সট কেটে দেয়। |
highlight_phrase() | টেক্সটের নির্দিষ্ট শব্দ হাইলাইট করে। |
উদাহরণ:
$text = "CodeIgniter is a powerful PHP framework.";
echo word_limiter($text, 3); // CodeIgniter is a...
echo character_limiter($text, 20); // CodeIgniter is a p...
echo highlight_phrase($text, 'CodeIgniter', '<b>', '</b>'); // <b>CodeIgniter</b> is a powerful PHP framework.
File Helper ফাইল ম্যানিপুলেশনের জন্য সহায়ক ফাংশন সরবরাহ করে।
Function | Description |
---|---|
read_file() | একটি ফাইল পড়ে। |
write_file() | একটি ফাইলে ডেটা লিখে। |
delete_files() | একটি ডিরেক্টরির ফাইলগুলো ডিলিট করে। |
উদাহরণ:
$content = read_file('./uploads/example.txt');
write_file('./uploads/new_file.txt', 'Hello, CodeIgniter!');
delete_files('./uploads/temp/');
Array Helper অ্যারের সাথে কাজ করার জন্য বিভিন্ন ফাংশন সরবরাহ করে।
Function | Description |
---|---|
element() | অ্যারের নির্দিষ্ট একটি এলিমেন্ট রিটার্ন করে। |
random_element() | অ্যারেতে থেকে র্যান্ডম একটি এলিমেন্ট রিটার্ন করে। |
উদাহরণ:
$array = ['name' => 'John', 'email' => 'john@example.com'];
echo element('name', $array); // John
echo random_element($array); // John বা john@example.com
Security Helper ইনপুট স্যানিটাইজ এবং সুরক্ষিত করার জন্য সহায়ক ফাংশন সরবরাহ করে।
Function | Description |
---|---|
xss_clean() | XSS আক্রমণ থেকে সুরক্ষিত ইনপুট প্রদান করে। |
strip_image_tags() | ইমেজ ট্যাগ ফিল্টার করে। |
উদাহরণ:
$input = '<script>alert("Hack!")</script>';
echo xss_clean($input); // ফিল্টার করা ইনপুট রিটার্ন করবে
app/Helpers/custom_helper.php
নামে একটি ফাইল তৈরি করুন।ফাংশন যোগ করুন:
function greet($name) {
return "Hello, " . ucfirst($name) . "!";
}
helper('custom_helper');
echo greet('john'); // Hello, John!
CodeIgniter এর Common Helper Functions ডেভেলপমেন্ট দ্রুততর এবং কার্যকর করে। এগুলো ব্যবহার করে কোড পরিষ্কার এবং পুনরায় ব্যবহারযোগ্য রাখা সম্ভব।
CodeIgniter আপনাকে অ্যাপ্লিকেশনের জন্য Custom Library এবং Helper তৈরি করার সুবিধা দেয়। এটি কোড পুনরায় ব্যবহারযোগ্য করে এবং অ্যাপ্লিকেশনের মডুলারিটি বাড়ায়।
Library হলো একটি ক্লাস, যা নির্দিষ্ট কার্যক্রম পরিচালনার জন্য তৈরি করা হয়। CodeIgniter এ Custom Library তৈরি করে আপনি নির্দিষ্ট লজিক বা কার্যক্রম আলাদা রাখতে পারেন।
Custom Library তৈরি করতে, application/libraries
ডিরেক্টরিতে একটি ফাইল তৈরি করুন। উদাহরণস্বরূপ, MyLibrary.php নামে একটি ফাইল তৈরি করুন:
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class MyLibrary {
public function print_message($message) {
return "Message from MyLibrary: " . $message;
}
}
Library লোড করতে load->library()
ব্যবহার করুন:
class Welcome extends CI_Controller {
public function index() {
$this->load->library('MyLibrary'); // Library লোড
echo $this->mylibrary->print_message('Hello, CodeIgniter!');
}
}
Library প্রতি বার লোড করার প্রয়োজন না হলে এটি application/config/autoload.php
ফাইলে অটোলোড করতে পারেন:
$autoload['libraries'] = ['MyLibrary'];
Helper হলো ফাংশনের একটি কালেকশন, যা সাধারণ কাজ সম্পাদনের জন্য ব্যবহার করা হয়। এটি ক্লাস নয় এবং এটি স্ট্যাটিক ফাংশন হিসেবে কাজ করে।
Custom Helper তৈরি করতে, application/helpers
ডিরেক্টরিতে একটি ফাইল তৈরি করুন। উদাহরণস্বরূপ, my_helper.php নামে একটি ফাইল তৈরি করুন:
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
if (!function_exists('print_message')) {
function print_message($message) {
return "Message from Helper: " . $message;
}
}
Helper লোড করতে load->helper()
ব্যবহার করুন:
class Welcome extends CI_Controller {
public function index() {
$this->load->helper('my_helper'); // Helper লোড
echo print_message('Hello, CodeIgniter!');
}
}
Helper অটোলোড করতে, application/config/autoload.php
ফাইলে এটি যোগ করুন:
$autoload['helper'] = ['my_helper'];
বিষয় | Library | Helper |
---|---|---|
গঠন | একটি ক্লাস। | ফাংশনের একটি কালেকশন। |
ব্যবহার | $this->load->library('library_name') | $this->load->helper('helper_name') |
কার্যক্রম | নির্দিষ্ট কার্যক্রম পরিচালনার জন্য। | ছোট ও সাধারণ কাজ পরিচালনার জন্য। |
মেমরি ব্যবস্থাপনা | লোড হওয়ার পর মেমরিতে থাকে। | শুধুমাত্র লোড করা ফাংশন ব্যবহার করা হয়। |
<?php
class MyLibrary {
public function format_text($text) {
return strtoupper($text);
}
}
<?php
function append_text($text, $suffix) {
return $text . $suffix;
}
class Welcome extends CI_Controller {
public function index() {
$this->load->library('MyLibrary'); // Library লোড
$this->load->helper('my_helper'); // Helper লোড
$formatted_text = $this->mylibrary->format_text('hello');
$final_text = append_text($formatted_text, ' CodeIgniter!');
echo $final_text; // আউটপুট: HELLO CodeIgniter!
}
}
Custom Library এবং Helper ব্যবহার করে CodeIgniter এ কার্যকরী, পুনরায় ব্যবহারযোগ্য এবং রক্ষণাবেক্ষণযোগ্য কোড তৈরি করা সম্ভব।
CodeIgniter-এ কাস্টম ক্লাস এবং মেথড যোগ করার মাধ্যমে অ্যাপ্লিকেশনের কার্যকারিতা বাড়ানো যায়। কাস্টম ক্লাস তৈরি করলে আপনি পুনঃব্যবহারযোগ্য কোড এবং সাধারণ কার্যক্রম সহজেই পরিচালনা করতে পারেন।
app/Libraries
ডিরেক্টরিতে আপনার কাস্টম ক্লাস তৈরি করুন।
উদাহরণ: app/Libraries/MyCustomClass.php
:
<?php
namespace App\Libraries;
class MyCustomClass
{
public function greet($name)
{
return "Hello, $name!";
}
public function addNumbers($a, $b)
{
return $a + $b;
}
}
কন্ট্রোলারে কাস্টম ক্লাস ব্যবহার করতে হলে, এটি লোড করুন।
কন্ট্রোলারের উদাহরণ: app/Controllers/Home.php
:
<?php
namespace App\Controllers;
use App\Libraries\MyCustomClass;
class Home extends BaseController
{
public function index()
{
$custom = new MyCustomClass();
// greet() মেথড ব্যবহার
echo $custom->greet("John Doe");
// addNumbers() মেথড ব্যবহার
echo $custom->addNumbers(5, 10);
}
}
কাস্টম মেথড হেল্পার ফাইল, মডেল, বা লাইব্রেরি-তে যোগ করা যায়।
app/Helpers/custom_helper.php
ফাইল তৈরি করুন।
<?php
function formatDate($date)
{
return date("d-m-Y", strtotime($date));
}
app/Config/Autoload.php
ফাইলে হেল্পার অটো-লোড করুন:
public $helpers = ['custom_helper'];
echo formatDate("2024-12-01"); // আউটপুট: 01-12-2024
app/Models/UserModel.php
:
<?php
namespace App\Models;
use CodeIgniter\Model;
class UserModel extends Model
{
protected $table = 'users';
public function getUserByEmail($email)
{
return $this->where('email', $email)->first();
}
}
app/Controllers/UserController.php
:
<?php
namespace App\Controllers;
use App\Models\UserModel;
class UserController extends BaseController
{
public function findUser($email)
{
$userModel = new UserModel();
$user = $userModel->getUserByEmail($email);
print_r($user);
}
}
app/Libraries/Calculator.php
:
<?php
namespace App\Libraries;
class Calculator
{
public function multiply($a, $b)
{
return $a * $b;
}
}
use App\Libraries\Calculator;
$calculator = new Calculator();
echo $calculator->multiply(4, 5); // আউটপুট: 20
CodeIgniter এ ক্লাস অটোলোড করতে app/Config/Autoload.php
ফাইল ব্যবহার করা হয়।
public $psr4 = [
'App\Libraries' => APPPATH . 'Libraries',
];
Custom Classes এবং মেথড ব্যবহার করে অ্যাপ্লিকেশনের কার্যকারিতা সহজ এবং কার্যকরভাবে বৃদ্ধি করা যায়। এটি কোড পুনরায় ব্যবহারযোগ্য এবং রক্ষণাবেক্ষণযোগ্য করতে সাহায্য করে।
Read more