1. Kiến thức nền tảng cần có trước khi học CodeIgniter 4
Trước khi bước vào CodeIgniter 4, bạn nên nắm vững các kiến thức sau:
- PHP cơ bản: biến, mảng, vòng lặp, hàm, class, OOP cơ bản.
- HTML/CSS: dựng giao diện, layout, responsive cơ bản.
- JavaScript cơ bản: DOM, sự kiện, fetch API.
- MySQL: truy vấn SELECT, INSERT, UPDATE, DELETE, JOIN.
- Composer: quản lý package PHP.
Nếu bạn đã có nền tảng PHP cơ bản thì có thể bắt đầu ngay với CodeIgniter 4.
2. Lộ trình học CodeIgniter 4 chi tiết
Giai đoạn 1: Làm quen với CodeIgniter 4
- Cài đặt CodeIgniter 4 qua Composer.
- Tìm hiểu cấu trúc thư mục:
app,public,writable,vendor. - Hiểu về Routing, Controller, View, Model.
- Chạy thử ứng dụng đầu tiên với trang Hello World.
Ví dụ tạo route cơ bản trong app/Config/Routes.php:
<?php
use CodeIgniter\Router\RouteCollection;
/**
* @var RouteCollection $routes
*/
$routes->get('/', 'Home::index');
$routes->get('about', 'Home::about');
Ví dụ Controller trong app/Controllers/Home.php:
<?php
namespace App\Controllers;
use App\Controllers\BaseController;
class Home extends BaseController
{
public function index()
{
return view('welcome_message');
}
public function about()
{
$data = [
'title' => 'Giới thiệu',
'content' => 'Đây là trang giới thiệu.',
];
return view('about', $data);
}
}
Giai đoạn 2: Làm việc với Database và Model
- Cấu hình kết nối database trong
app/Config/Database.php. - Tạo Migration và Seeder.
- Viết Model, sử dụng Query Builder và Entity.
- Thực hiện CRUD cơ bản.
Ví dụ Migration:
<?php
namespace App\Database\Migrations;
use CodeIgniter\Database\Migration;
class CreatePosts extends Migration
{
public function up()
{
$this->forge->addField([
'id' => [
'type' => 'INT',
'constraint' => 11,
'unsigned' => true,
'auto_increment' => true,
],
'title' => [
'type' => 'VARCHAR',
'constraint' => 255,
],
'content' => [
'type' => 'TEXT',
'null' => true,
],
'created_at' => [
'type' => 'DATETIME',
'null' => true,
],
]);
$this->forge->addKey('id', true);
$this->forge->createTable('posts');
}
public function down()
{
$this->forge->dropTable('posts');
}
}
Ví dụ Model:
<?php
namespace App\Models;
use CodeIgniter\Model;
class PostModel extends Model
{
protected $table = 'posts';
protected $primaryKey = 'id';
protected $allowedFields = ['title', 'content', 'created_at'];
protected $useTimestamps = false;
}
Giai đoạn 3: Xây dựng chức năng thực tế
- Xây dựng CRUD bài viết (thêm, sửa, xóa, danh sách).
- Upload hình ảnh.
- Phân trang với
paginate(). - Validate dữ liệu đầu vào.
- Xử lý flash message và session.
Ví dụ validate trong Controller:
<?php
public function store()
{
$rules = [
'title' => 'required|min_length[3]|max_length[255]',
'content' => 'required',
];
if (! $this->validate($rules)) {
return redirect()->back()->withInput()->with('errors', $this->validator->getErrors());
}
$model = new \App\Models\PostModel();
$model->save([
'title' => $this->request->getPost('title'),
'content' => $this->request->getPost('content'),
]);
return redirect()->to('/posts')->with('success', 'Thêm bài viết thành công.');
}
Giai đoạn 4: Bảo mật và tối ưu
- CSRF Protection.
- XSS Filtering.
- Authentication và Authorization đơn giản.
- Filters trong CodeIgniter 4.
- Tối ưu query, cache, và cấu hình môi trường production.
Ví dụ tạo Filter kiểm tra đăng nhập:
<?php
namespace App\Filters;
use CodeIgniter\HTTP\RequestInterface;
use CodeIgniter\HTTP\ResponseInterface;
use CodeIgniter\Filters\FilterInterface;
class AuthFilter implements FilterInterface
{
public function before(RequestInterface $request, $arguments = null)
{
if (! session()->get('user_id')) {
return redirect()->to('/login');
}
}
public function after(RequestInterface $request, ResponseInterface $response, $arguments = null)
{
// Không xử lý gì thêm
}
}
3. Kết hợp AI và DeepSeek vào quá trình học
AI và DeepSeek có thể hỗ trợ bạn rất nhiều trong việc học CodeIgniter 4. Dưới đây là một số cách áp dụng thực tế:
3.1. Dùng AI để giải thích khái niệm
Khi gặp khái niệm khó như Service, Filter, Event, hay Dependency Injection trong CodeIgniter 4, bạn có thể hỏi AI để được giải thích kèm ví dụ minh họa.
3.2. Dùng AI để sinh code mẫu
Ví dụ bạn có thể yêu cầu AI sinh một Controller CRUD hoàn chỉnh cho bảng products gồm các trường name, price, description. AI sẽ tạo ra code mẫu để bạn tham khảo và chỉnh sửa.
3.3. Dùng AI để debug lỗi
Khi gặp lỗi, bạn có thể dán thông báo lỗi và đoạn code liên quan cho AI để được gợi ý nguyên nhân và cách sửa.
3.4. Dùng DeepSeek để tra cứu tài liệu và tối ưu code
DeepSeek có thể giúp bạn tìm kiếm tài liệu chính thức, so sánh cách viết code, và gợi ý cách tối ưu hiệu năng. Bạn có thể hỏi DeepSeek những câu như:
- Cách viết query builder hiệu quả trong CodeIgniter 4?
- Cách tổ chức module trong CodeIgniter 4?
- Cách triển khai repository pattern trong CodeIgniter 4?
3.5. Dùng AI để tạo đề bài và bài tập thực hành
Bạn có thể yêu cầu AI tạo đề bài theo cấp độ từ dễ đến khó, ví dụ:
- Bài 1: Tạo trang danh sách sản phẩm có phân trang.
- Bài 2: Thêm chức năng tìm kiếm theo tên sản phẩm.
- Bài 3: Thêm chức năng upload ảnh sản phẩm.
- Bài 4: Thêm đăng nhập và phân quyền admin.
4. Lộ trình thực hành theo tuần
| Tuần | Nội dung | Kết quả cần đạt |
|---|---|---|
| Tuần 1 | PHP OOP, Composer, cài đặt CodeIgniter 4 | Chạy được ứng dụng Hello World |
| Tuần 2 | Routing, Controller, View | Dựng được layout cơ bản |
| Tuần 3 | Database, Migration, Model | CRUD đơn giản hoạt động |
| Tuần 4 | Validate, Session, Upload | Form thêm/sửa có kiểm tra dữ liệu |
| Tuần 5 | Auth, Filter, bảo mật | Trang admin có đăng nhập |
| Tuần 6 | Tối ưu, cache, deploy | Ứng dụng chạy ổn định trên hosting |
5. Một số lưu ý khi học CodeIgniter 4
- Đọc tài liệu chính thức tại
codeigniter.com/user_guide. - Thực hành ngay sau mỗi bài học, không chỉ đọc lý thuyết.
- Dùng Git để quản lý mã nguồn ngay từ đầu.
- Đọc code của các package mẫu để học cách tổ chức.
- Kết hợp AI để học nhanh hơn, nhưng luôn kiểm chứng lại code.
6. Kết luận
CodeIgniter 4 là lựa chọn tốt cho người mới học thiết kế web với PHP nhờ cấu trúc rõ ràng, tài liệu đầy đủ và hiệu năng tốt. Khi kết hợp với AI và DeepSeek, quá trình học sẽ nhanh hơn, ít bị kẹt ở các lỗi cơ bản và có nhiều ví dụ thực tế để tham khảo. Điều quan trọng nhất vẫn là thực hành đều đặn và xây dựng sản phẩm thật.
Chúc bạn học tốt và sớm làm chủ CodeIgniter 4.

