1. CodeIgniter là gì?

CodeIgniter là một PHP Framework nhẹ (lightweight) được phát triển để giúp lập trình viên xây dựng ứng dụng web nhanh chóng, đơn giản và hiệu quả. Framework hoạt động theo mô hình MVC (Model - View - Controller) giống Laravel, nhưng nhẹ hơn và không yêu cầu cấu hình phức tạp.

CodeIgniter nổi tiếng với:

  • Tốc độ chạy rất nhanh
  • Cấu hình đơn giản
  • Tài liệu dễ hiểu
  • Thích hợp cho dự án nhỏ-trung bình

2. Ưu điểm của CodeIgniter

1. Nhẹ, tốc độ cực nhanh

  • CodeIgniter rất nhỏ gọn, tải nhanh và tối ưu cao.

2. Dễ học - dễ dùng

  • Không bắt buộc composer, không yêu cầu server cấu hình phức tạp.

3. Cấu hình tối thiểu (Zero-configuration)

  • Cài vào là chạy - ít phụ thuộc vào bên thứ ba.

4. Bảo mật tốt

  • Có sẵn CSRF, XSS filtering, SQL injection protection.

5. Tài liệu đầy đủ, rõ ràng

  • Hướng dẫn trực tiếp trong thư mục user_guide.

6. Phù hợp cho dự án nhỏ, trung bình

  • Website tin tức, blog, admin panel, API đơn giản...

3. Nhược điểm

  • Ít tính năng hơn
  • Ít thư viện hỗ trợ so với Laravel
  • Không phổ biến bằng Laravel
  • Dùng config thủ công nhiều bước

Tuy nhiên, CodeIgniter vẫn là lựa chọn lý tưởng cho lập trình viên thích sự đơn giản + tốc độ.

4. CodeIgniter hoạt động như thế nào?

1. Model

  • Làm việc với cơ sở dữ liệu.

2. View

  • Hiển thị dữ liệu ra giao diện.

3. Controller

  • Xử lý logic, nhận request -> gửi dữ liệu cho View.

5. Cấu trúc thư mục CodeIgniter

Thư mục Chức năng
application/ Chứa MVC: models, views, controllers
system/ Code lõi của framework
public/ hoặc htdocs/ Nơi chạy website
application/config/ Cấu hình database, routes, constants
application/views/ File giao diện
application/models/ Model database
application/controllers/ Controller chính

6. Ví dụ chi tiết từng bước: Tạo ứng dụng CodeIgniter đơn giản

Tải CodeIgniter

  • Tải tại trang chính thức: codeigniter.com (CI4 hoặc CI3)
  • Giải nén vào thư mục web server.

1. Tạo Route trong CodeIgniter 4

File: app/Config/Routes.php

$routes->get('/hello', 'Home::hello');

2. Tạo Controller

Tạo file app/Controllers/Home.php

<?php namespace App\Controllers;

class Home extends BaseController
{
    public function hello()
    {
        return view('hello_message');
    }
}

3. Tạo View

Tạo file: app/Views/hello_message.php

<h1>Xin chào CodeIgniter 2025!</h1>

Truy cập: http://localhost/hello

7. Ví dụ thao tác Database (CRUD cơ bản)

Tạo Model:

File: app/Models/PostModel.php

<?php namespace App\Models;

use CodeIgniter\Model;

class PostModel extends Model
{
    protected $table = 'posts';
    protected $primaryKey = 'id';
    protected $allowedFields = ['title', 'content'];
}

Dùng Model trong Controller:

$postModel = new \App\Models\PostModel();

$data['posts'] = $postModel->findAll();

return view('posts/list', $data);

8. Tính năng nổi bật của CodeIgniter

Routing đơn giản

  • Routing cấu hình dễ dàng.

Caching tốc độ cao

  • Giúp tối ưu tốc độ website.

Security

  • Có sẵn Validation, CSRF, XSS protection.

Session & Cookie

  • Hỗ trợ đầy đủ.

RESTful API

  • CodeIgniter 4 hỗ trợ tốt API JSON.

CLI (Command Line Tool)

  • Giúp chạy migration, seeding nhanh chóng.

9. CodeIgniter phù hợp với ai?

Người mới học PHP

  • Code đơn giản, dễ học hơn Laravel.

Dự án nhỏ - trung bình

  • Blog, website công ty, admin dashboard…

Dự án yêu cầu tốc độ cao

  • Vì CI rất nhẹ và chạy nhanh.

10. So sánh CodeIgniter vs Laravel

Tiêu chí CodeIgniter Laravel
Độ phức tạp Dễ Trung bình
Tính năng Ít Rất nhiều
Hiệu năng Nhanh Nhanh (nhưng nặng hơn CI
Thư viện Ít Rất nhiều
Cộng đồng Vừa Rất lớn
Mục tiêu Dự án nhỏ Dự án nhỏ -> lớn

Kết luận

CodeIgniter là framework PHP nhẹ, nhanh, dễ học, phù hợp cho người mới hoặc dự án nhỏ-trung bình trong năm 2025. Nếu bạn muốn sự đơn giản và hiệu năng cao -> CodeIgniter là lựa chọn tốt. Nếu muốn dự án lớn hơn, nhiều tính năng hơn -> Laravel là lựa chọn tối ưu.