CodeIgniter ইনস্টল করার পর অ্যাপ্লিকেশন সঠিকভাবে কাজ করার জন্য কয়েকটি বেসিক কনফিগারেশন করা জরুরি। এই কনফিগারেশনগুলোর মাধ্যমে অ্যাপ্লিকেশনটির বেস URL, ডাটাবেস সংযোগ এবং অন্যান্য সেটিংস সঠিকভাবে পরিচালিত হয়।
Base URL হলো আপনার অ্যাপ্লিকেশনের মূল URL। এটি সঠিকভাবে সেট না করলে অ্যাপ্লিকেশনের লিংক এবং রিসোর্স (CSS, JS, ইমেজ) ঠিকমতো কাজ করবে না।
app/Config/App.php
ফাইলটি খুলুন।$baseURL
প্রপার্টি খুঁজুন এবং আপনার অ্যাপ্লিকেশনের URL সেট করুন:
public $baseURL = 'http://localhost/your_project_name/';
যদি আপনার সার্ভার HTTPS সমর্থন করে, তাহলে http
পরিবর্তে https
ব্যবহার করুন:
public $baseURL = 'https://example.com/';
CodeIgniter এ ডাটাবেস সংযোগ সেটআপ করার জন্য ডিফল্ট ফাইল হলো app/Config/Database.php
।
app/Config/Database.php
ফাইলটি খুলুন।ডাটাবেস সংযোগের তথ্য দিন:
public $default = [
'DSN' => '',
'hostname' => 'localhost',
'username' => 'root', // আপনার ডাটাবেস ইউজারনেম
'password' => '', // আপনার ডাটাবেস পাসওয়ার্ড
'database' => 'your_database_name', // ডাটাবেসের নাম
'DBDriver' => 'MySQLi',
'DBPrefix' => '',
];
.env
ফাইল ব্যবহার করে:ডাটাবেস সেটিংস .env
ফাইল থেকেও কনফিগার করা যায়। .env
ফাইলটি তৈরি করে নিচের মত কনফিগার করুন:
database.default.hostname = localhost
database.default.database = your_database_name
database.default.username = root
database.default.password =
database.default.DBDriver = MySQLi
CodeIgniter এ ডিফল্ট রুট (route) নির্ধারণ করা হয় app/Config/Routes.php
ফাইলে।
ডিফল্ট কন্ট্রোলার নির্ধারণ করতে নিচের কোডটি ব্যবহার করুন:
$routes->setDefaultController('Home');
$routes->setDefaultMethod('index');
এখানে Home
হলো ডিফল্ট কন্ট্রোলার এবং index
হলো ডিফল্ট মেথড।
কাস্টম রাউট যোগ করতে:
$routes->get('about', 'Pages::about');
CodeIgniter এ ডিফল্ট টাইমজোন নির্ধারণ করার জন্য app/Config/App.php
ফাইলে $appTimezone
প্রপার্টি ব্যবহার করা হয়।
app/Config/App.php
ফাইলটি খুলুন।$appTimezone
এ আপনার টাইমজোন সেট করুন:
public $appTimezone = 'Asia/Dhaka';
CodeIgniter এ ডিবাগিং এবং সমস্যা নির্ণয়ের জন্য CI_ENVIRONMENT
সেট করা হয়। এটি .env
ফাইলে নির্ধারণ করা হয়।
.env
ফাইল খুলুন।নিচের লাইনটি খুঁজে সেট করুন:
CI_ENVIRONMENT = development
প্রোডাকশন পরিবেশে এটি পরিবর্তন করুন:
CI_ENVIRONMENT = production
CodeIgniter এ সেশন ডাটা সংরক্ষণ করার জন্য সেশন কনফিগারেশন প্রয়োজন।
app/Config/App.php
ফাইলে সেশন হ্যান্ডলার নির্ধারণ করুন:
public $sessionDriver = 'CodeIgniter\Session\Handlers\FileHandler'; // ডিফল্ট
public $sessionSavePath = WRITEPATH . 'session'; // সেশন ফাইল সংরক্ষণের পথ
writable/session
ফোল্ডার রাইটেবল।CodeIgniter এ নিরাপত্তা বাড়ানোর জন্য কিছু ডিফল্ট সেটিংস রয়েছে।
Cross-Site Scripting (XSS): app/Config/App.php
ফাইলে $CSRFProtection
চালু করুন:
public $CSRFProtection = true;
app/Config/ContentSecurityPolicy.php
ফাইল ব্যবহার করুন।CodeIgniter অ্যাপ্লিকেশন পারফরম্যান্স উন্নত করার জন্য ক্যাশিং সাপোর্ট করে।
app/Config/Cache.php
ফাইলে ক্যাশ ড্রাইভার নির্ধারণ করুন:
public $handler = 'file';
public $backupHandler = 'dummy';
public $cachePath = WRITEPATH . 'cache';
এই বেসিক কনফিগারেশনগুলো সঠিকভাবে সেটআপ করলে CodeIgniter অ্যাপ্লিকেশন দ্রুত, নিরাপদ, এবং নির্ভুলভাবে কাজ করবে।
CodeIgniter ফ্রেমওয়ার্কে Config ফাইল একটি গুরুত্বপূর্ণ অংশ। এটি অ্যাপ্লিকেশনের বিভিন্ন সেটিংস এবং ডিফল্ট কনফিগারেশন পরিচালনা করে। Config ফাইলগুলি সাধারণত app/Config
ডিরেক্টরিতে থাকে।
নিচে CodeIgniter-এর Config ফাইল এবং তাদের কনফিগারেশন ব্যাখ্যা করা হয়েছে।
App.php
ফাইলটি অ্যাপ্লিকেশনের মূল কনফিগারেশন পরিচালনা করে।
public $baseURL = 'http://localhost/your_project_name/';
public $indexPage = '';
index.php
সরাতে খালি রাখুন।public $defaultLocale = 'en';
public $timezone = 'Asia/Dhaka';
public $CSPEnabled = false;
Database.php
ফাইলটি ডাটাবেস সংযোগের জন্য ব্যবহৃত হয়।
public $default = [
'DSN' => '',
'hostname' => 'localhost',
'username' => 'root',
'password' => '',
'database' => 'your_database_name',
'DBDriver' => 'MySQLi',
'DBPrefix' => '',
'pConnect' => false,
'DBDebug' => true,
];
localhost
)।MySQLi
, Postgre
, SQLite
ইত্যাদি)।Routes.php
ফাইলটি অ্যাপ্লিকেশনের রাউটিং নিয়ন্ত্রণ করে।
$routes->get('/', 'Home::index');
$routes->add('about', 'Pages::about');
http://localhost/about
)।Email.php
ফাইলটি ইমেইল কনফিগারেশন পরিচালনা করে।
public $protocol = 'smtp';
public $SMTPHost = 'smtp.gmail.com';
public $SMTPUser = 'your_email@gmail.com';
public $SMTPPass = 'your_email_password';
public $SMTPPort = 587;
public $mailType = 'html';
Validation.php
ফাইলটি ফর্ম ভ্যালিডেশন নিয়ন্ত্রণ করে।
public $signup = [
'username' => 'required|min_length[5]',
'email' => 'required|valid_email',
'password' => 'required|min_length[8]',
];
.env
ফাইল ব্যবহার করে ডিফল্ট কনফিগারেশন ওভাররাইড করুন।public $default = [
'hostname' => 'localhost',
'username' => 'admin',
'password' => '12345',
'database' => 'my_database',
'DBDriver' => 'MySQLi',
];
public $baseURL = 'http://localhost/my_project/';
$routes->get('contact', 'Pages::contact');
CodeIgniter এর Config ফাইল কনফিগারেশনের মাধ্যমে অ্যাপ্লিকেশন উন্নত, সুরক্ষিত এবং কার্যকর করা যায়। এটি সঠিকভাবে পরিচালনা করা CodeIgniter প্রজেক্টের সফলতার গুরুত্বপূর্ণ অংশ।
CodeIgniter-এ autoloading হলো এমন একটি পদ্ধতি যার মাধ্যমে কিছু নির্দিষ্ট libraries, helper functions, এবং models স্বয়ংক্রিয়ভাবে লোড হয়। এটি বারবার লোড করার ঝামেলা থেকে বাঁচায় এবং ডেভেলপমেন্টকে দ্রুততর করে।
CodeIgniter-এ autoload কনফিগারেশন ফাইলটি app/Config/Autoload.php
ডিরেক্টরিতে থাকে। এই ফাইল ব্যবহার করে আপনি বিভিন্ন রিসোর্স যেমন libraries, helpers, এবং models লোড করতে পারেন।
CodeIgniter এর কিছু বিল্ট-ইন লাইব্রেরি রয়েছে, যেমন:
app/Config/Autoload.php
ফাইলটি খুলুন।$psr4
অ্যারে ব্যবহার করে লাইব্রেরি যুক্ত করুন। উদাহরণ:
public $psr4 = [
'App' => APPPATH,
'Config' => APPPATH . 'Config',
];
app/Config/Autoload.php
ফাইলে $classmap
অ্যারেতে ডাটাবেস যুক্ত করুন:
public $classmap = [
'database' => 'system/Database/Database.php',
];
Helper হলো পুনরায় ব্যবহারযোগ্য ফাংশনের একটি সেট। CodeIgniter-এ বিভিন্ন বিল্ট-ইন হেল্পার রয়েছে, যেমন:
url_helper
form_helper
app/Config/Autoload.php
ফাইলটি খুলুন।$helpers
অ্যারেতে হেল্পার যোগ করুন। উদাহরণ:
public $helpers = ['url', 'form'];
public $helpers = ['url'];
এটি লোড করার পর, আপনি base_url()
বা site_url()
এর মতো ফাংশন সরাসরি ব্যবহার করতে পারবেন।
Model হলো CodeIgniter-এর একটি উপাদান, যা ডাটাবেস সম্পর্কিত কার্যক্রম পরিচালনা করে।
app/Config/Autoload.php
ফাইলটি খুলুন।$classmap
বা $psr4
এর মাধ্যমে মডেল যুক্ত করুন।ধরুন আপনার মডেলের নাম UserModel।
app/Models/UserModel.php
এ মডেলটি তৈরি করুন:
<?php
namespace App\Models;
use CodeIgniter\Model;
class UserModel extends Model {
protected $table = 'users';
}
মডেলটি autoload করুন:
public $psr4 = [
'App' => APPPATH,
];
$userModel = new \App\Models\UserModel();
$users = $userModel->findAll();
CodeIgniter-এ autoloading কনফিগারেশন সঠিকভাবে সেটআপ করলে আপনার অ্যাপ্লিকেশন আরও দ্রুত এবং কার্যকরভাবে কাজ করবে। এটি পুনরাবৃত্ত কোড লেখার প্রয়োজনীয়তা দূর করে এবং ডেভেলপমেন্টে সুবিধা নিয়ে আসে।
Routes হলো CodeIgniter-এ এমন একটি সিস্টেম, যা ইউজারের রিকোয়েস্ট করা URL কে নির্ধারিত কন্ট্রোলার এবং মেথড-এর সাথে সংযুক্ত করে। এটি URL গুলোকে আরও রিডেবল, SEO-বান্ধব, এবং কাস্টমাইজযোগ্য করতে ব্যবহৃত হয়। CodeIgniter-এ Routes কনফিগারেশন খুবই সহজ এবং শক্তিশালী।
Routes ফাইল app/Config/Routes.php
এ সংরক্ষিত থাকে। CodeIgniter প্রতিটি URL কে একটি নির্দিষ্ট কন্ট্রোলার এবং মেথডের সাথে সংযুক্ত করতে এই ফাইল ব্যবহার করে।
CodeIgniter একটি ডিফল্ট Route ব্যবহার করে, যা ওয়েলকাম পেজ প্রদর্শন করে:
$routes->get('/', 'Home::index');
/
: URL এর রুট অংশ নির্দেশ করে।'Home::index'
: Home কন্ট্রোলারের index() মেথডকে নির্দেশ করে।Routes.php
ফাইল খোলাapp/Config/Routes.php
ফাইলটি খুলুন এবং প্রয়োজনীয় Route কনফিগারেশন যুক্ত করুন।
Route কনফিগার করতে $routes
অবজেক্ট ব্যবহার করা হয়।
GET রিকোয়েস্টের জন্য একটি Route:
$routes->get('about', 'Pages::about');
about
: URL।Pages::about
: Pages কন্ট্রোলারের about() মেথড।POST রিকোয়েস্টের জন্য Route:
$routes->post('submit', 'Form::submit');
PUT এবং DELETE রিকোয়েস্টের জন্য Route:
$routes->put('update', 'User::update');
$routes->delete('delete', 'User::delete');
Resourceful কন্ট্রোলারের জন্য Route:
$routes->resource('products');
এটি স্বয়ংক্রিয়ভাবে CRUD (Create, Read, Update, Delete) রুট তৈরি করবে।
URL এর মাধ্যমে ডাইনামিক ডেটা পাঠানোর জন্য প্যারামিটার ব্যবহার করা হয়।
$routes->get('product/(:num)', 'Product::details/$1');
(:num)
: শুধুমাত্র সংখ্যার জন্য প্যারামিটার।$1
: প্রথম প্যারামিটার।$routes->get('user/(:any)/(:num)', 'User::profile/$1/$2');
(:any)
: যেকোনো ধরণের স্ট্রিং বা নম্বর।$1
এবং $2
: প্যারামিটার ক্রমানুসারে পাস হবে।Route গুলোকে গ্রুপে সংগঠিত করা যায়। এটি বড় অ্যাপ্লিকেশনের জন্য খুবই উপযোগী।
$routes->group('admin', function($routes) {
$routes->get('dashboard', 'Admin::dashboard');
$routes->get('users', 'Admin::users');
});
/admin/dashboard
/admin/users
Route ফিল্টার ব্যবহার করে নির্দিষ্ট Route-এ Authentication বা Authorization যাচাই করা যায়।
app/Config/Filters.php
ফাইল থেকে ফিল্টার সংজ্ঞায়িত করুন:
public $aliases = [
'auth' => \App\Filters\AuthFilter::class,
];
$routes->group('dashboard', ['filter' => 'auth'], function($routes) {
$routes->get('home', 'Dashboard::home');
});
Route কনফিগার করার সময় সর্বাধিক নির্দিষ্ট Route উপরে রাখতে হবে। উদাহরণ:
$routes->get('product/edit/(:num)', 'Product::edit/$1');
$routes->get('product/(:num)', 'Product::details/$1');
এতে প্রথমে edit Route কার্যকর হবে এবং তারপর details।
আপনার Route ঠিকভাবে কাজ করছে কিনা তা নিশ্চিত করতে ব্রাউজারে URL লিখুন। উদাহরণ:
http://localhost/your_project_name/about
CodeIgniter এর Routes সিস্টেম অ্যাপ্লিকেশনকে আরও কার্যকরী এবং ব্যবহারযোগ্য করে তোলে। সঠিকভাবে Route কনফিগার করা আপনার অ্যাপ্লিকেশনের স্ট্রাকচার এবং ইউজার এক্সপেরিয়েন্স উন্নত করতে সাহায্য করে।
CodeIgniter এ ডাটাবেস কনফিগারেশন একটি অত্যন্ত গুরুত্বপূর্ণ ধাপ, কারণ এটি অ্যাপ্লিকেশনকে ডাটাবেসের সাথে সংযোগ স্থাপন করতে সহায়তা করে। CodeIgniter 4 এ ডাটাবেস কনফিগারেশন সাধারণত .env
ফাইল বা app/Config/Database.php
ফাইল ব্যবহার করে করা হয়।
ডাটাবেস কনফিগার করার আগে একটি ডাটাবেস তৈরি করুন:
phpMyAdmin বা MySQL CLI ব্যবহার করে একটি নতুন ডাটাবেস তৈরি করুন।
CREATE DATABASE your_database_name;
.env
ফাইলের মাধ্যমে ডাটাবেস কনফিগারেশনCodeIgniter 4 এ .env
ফাইলের মাধ্যমে সহজেই ডাটাবেস কনফিগার করা যায়।
.env
ফাইল সক্রিয়করণenv
নামে একটি ফাইল পাবেন।.env
এ পরিবর্তন করুন।.env
ফাইলটি খুলুন এবং নিচের ডাটাবেস সেটআপটি করুন:
database.default.hostname = localhost
database.default.database = your_database_name
database.default.username = your_username
database.default.password = your_password
database.default.DBDriver = MySQLi
database.default.port = 3306
.env
ফাইলের কনফিগারেশন ব্যাখ্যাlocalhost
)।root
)।3306
)।app/Config/Database.php
ফাইলের মাধ্যমে ডাটাবেস কনফিগারেশনডাটাবেস কনফিগারেশন সরাসরি app/Config/Database.php
ফাইলেও করা যায়। এই পদ্ধতিটি .env
ফাইলের বিকল্প।
Database.php
ফাইল কনফিগারেশনapp/Config/Database.php
ফাইলটি খুলুন।$default
অ্যারের ভ্যালুগুলো কনফিগার করুন:
public $default = [
'DSN' => '',
'hostname' => 'localhost',
'username' => 'your_username',
'password' => 'your_password',
'database' => 'your_database_name',
'DBDriver' => 'MySQLi',
'DBPrefix' => '',
'pConnect' => false,
'DBDebug' => (ENVIRONMENT !== 'production'),
'cacheOn' => false,
'cacheDir' => '',
'charset' => 'utf8',
'DBCollat' => 'utf8_general_ci',
'swapPre' => '',
'encrypt' => false,
'compress' => false,
'strictOn' => false,
'failover' => [],
'port' => 3306,
];
true
বা false
।false
করুন।CodeIgniter এ মডেল ব্যবহার করে ডাটাবেস কানেকশন চেক করুন:
একটি নতুন মডেল তৈরি করুন:
namespace App\Models;
use CodeIgniter\Model;
class TestModel extends Model {
protected $table = 'your_table_name';
}
কন্ট্রোলারে মডেল লোড এবং ডেটা রিট্রিভ করুন:
namespace App\Controllers;
use App\Models\TestModel;
class TestController extends BaseController {
public function index() {
$model = new TestModel();
$data = $model->findAll();
print_r($data);
}
}
http://localhost/your_project/public/testcontroller
লিংকে যান এবং ডেটা চেক করুন।CodeIgniter এ ডাটাবেস কনফিগারেশন সঠিকভাবে সম্পন্ন করার মাধ্যমে আপনি সহজেই ডাটাবেস সংযোগ স্থাপন এবং ডেটা পরিচালনা করতে পারবেন। .env
ফাইল বা Database.php
ফাইল ব্যবহার করে সহজেই কনফিগারেশন সম্পন্ন করা যায়।
Read more