0

EzCode # Giáo trình EzCode — từ số 0 đến project hoàn chỉnh

Bộ giáo trình này hướng dẫn bạn tự tay gõ lại EzCode — một website bán và học khóa học trực tuyến viết bằng PHP thuần theo mô hình MVC, không dùng framework nào cả.

Khi học xong, bạn sẽ có một website chạy được với đầy đủ:

  • Trang chủ, danh sách khóa học, bộ lọc và tìm kiếm
  • Đăng ký, đăng nhập, hồ sơ cá nhân, đổi mật khẩu
  • Trang học có video và danh sách bài giảng
  • Khu vực riêng cho giảng viên: tạo và sửa khóa học, tải ảnh bìa, quản lý bài học, xem học viên, xem thống kê doanh thu
  • Thanh toán qua cổng VNPay và lịch sử giao dịch

Dữ liệu nằm trong 6 bảng: users, courses, categories, lessions, enrollments, payments. Hệ thống có 2 vai trò người dùng là học viên (student) và giảng viên (teacher).


Giáo trình này dành cho ai

Dành cho người chưa từng viết một dòng PHP nào. Bạn chỉ cần biết HTML và CSS ở mức cơ bản: hiểu thẻ <div>, <form>, <table> là gì, và biết CSS dùng để trang trí.

Bạn không cần biết trước: PHP, lập trình hướng đối tượng, SQL, hay bất kỳ framework nào. Sáu bài đầu tiên sẽ dạy bạn từ đầu.


Cách dùng giáo trình

  1. Đọc tuần tự từ Bài 1. Mỗi bài đều ghi rõ ở đầu "Cần học trước: Bài mấy". Nhảy cóc sẽ bị hụt kiến thức.
  2. Tự gõ lại code, đừng chép dán. Gõ tay chậm hơn nhưng bạn sẽ nhớ. Chép dán thì học xong không viết lại được.
  3. Làm hết mục 5 (Bài tập) rồi mới mở mục 6 (Đáp án). Sai cũng không sao, sai rồi sửa mới nhớ lâu.
  4. Phần I (Bài 1 đến 6): bạn tự tạo các file .php nhỏ trong thư mục hoc/ ở gốc project để tập. Chưa đụng gì vào code thật.
  5. Từ Bài 7 trở đi: bạn gõ vào đúng cấu trúc thư mục của project. Xong Bài 10 là mở trình duyệt thấy trang chủ chạy thật.
  6. Chú ý các hộp ⚠️ Lưu ý. Chúng đánh dấu những chỗ code gốc có lỗi hoặc lỗ hổng. Bạn cứ gõ y hệt để khớp với project, còn cách sửa nằm ở Bài 22.

Bạn cần chuẩn bị

Thứ cần có Ghi chú
XAMPP Bản có PHP 8.0 trở lên và MariaDB/MySQL. Tải ở apachefriends.org
Trình soạn thảo VS Code là lựa chọn tốt và miễn phí
Trình duyệt Chrome, Edge hay Firefox đều được
Thời gian Khoảng 2 đến 3 giờ mỗi bài nếu bạn làm hết bài tập

Lộ trình

🟢 Phần I — Nền tảng PHP

Sáu bài này chưa đụng vào project. Bạn học cú pháp trên các file nhỏ tự tạo trong thư mục hoc/.

Bài Tên bài Bạn sẽ làm được gì
1 Cài đặt môi trường và file PHP đầu tiên Chạy được file PHP trên localhost, đọc được thông báo lỗi
2 Cú pháp PHP căn bản Viết biến, điều kiện, vòng lặp, hàm; định dạng giá tiền
3 Mảng và nhúng PHP vào HTML Dùng foreach in ra danh sách khóa học từ một mảng
4 Form, $_GET, $_POST, header() Nhận dữ liệu từ form, kiểm tra hợp lệ, chuyển hướng trang
5 Session và thông báo flash Làm được màn đăng nhập giả, nhớ được người dùng qua nhiều trang
6 Lập trình hướng đối tượng Viết class, hiểu $this__construct, đọc được code Model

🔵 Phần II — Cơ sở dữ liệu và khung MVC

Bài Tên bài Bạn sẽ làm được gì
7 Thiết kế cơ sở dữ liệu EzCode Import database, đọc hiểu 6 bảng và quan hệ giữa chúng
8 PDO và lớp Database Viết Models/Database.php, hiểu SQL Injection và cách chặn
9 MVC và Front Controller Viết index.php — bộ điều phối của cả website
10 Layout và trang chủ chạy được Mở trình duyệt thấy trang chủ EzCode thật

🎯 Hết Bài 10, mở trình duyệt là bạn thấy trang chủ EzCode thật với dữ liệu lấy từ database.

🟡 Phần III — Xây từng chức năng

Bài Tên bài Bạn sẽ làm được gì
11 Danh sách khóa học Trang khóa học với thanh lọc giảng viên và danh mục
12 Bộ lọc và tìm kiếm Lọc theo từ khóa, giảng viên, danh mục và sắp xếp theo giá
13 Chi tiết khóa học và danh sách bài học Trang chi tiết có tên giảng viên và accordion bài học
14 Đăng ký tài khoản Form đăng ký có kiểm tra hợp lệ và băm mật khẩu
15 Đăng nhập, đăng xuất, phân quyền hiển thị Đăng nhập thật, menu đổi theo vai trò người dùng
16 Trang cá nhân và trang Vào học Sửa hồ sơ, đổi mật khẩu, xem khóa đã mua, vào học
17 Khu vực giảng viên Dashboard giảng viên có chặn quyền truy cập
18 CRUD khóa học và upload ảnh Tạo, sửa, xóa khóa học và tải ảnh bìa lên an toàn

🔴 Phần IV — Nâng cao

Bài Tên bài Bạn sẽ làm được gì
19 Quản lý bài học và học viên Thêm bài học vào khóa, xem danh sách học viên đã mua
20 Thống kê và báo cáo Doanh thu theo tháng, top khóa học bán chạy
21 Tích hợp thanh toán VNPay Tạo đơn hàng, ký HMAC, xác thực callback, lịch sử giao dịch
22 Săn lỗi và vá bảo mật Tìm và sửa 17 lỗi có thật trong chính project vừa làm

Phụ lục

  • Phụ lục A — Tra cứu nhanh: bảng tra mọi hàm PHP và cú pháp SQL dùng trong project, bảng định tuyến đầy đủ, bảng thuật ngữ Anh-Việt, và danh sách lỗi hay gặp kèm cách xử lý.

Tài liệu gốc của project

Hai file này nằm ở gốc project, đọc thêm nếu bạn muốn nhìn tổng quan trước khi bắt đầu:

  • README.md — danh sách chức năng và tài khoản mẫu để đăng nhập thử.
  • PHAN_TICH_CHUC_NANG.md — phân tích chức năng theo từng tầng Controller, Model, View.

Sau khi học xong

Ba hướng đi tiếp, xếp theo độ khó tăng dần:

  1. Áp dụng toàn bộ bản vá của Bài 22 vào project. Đây là việc nên làm đầu tiên: bạn có một project sạch lỗi và tự tay hiểu vì sao từng chỗ phải sửa.
  2. Viết thêm chức năng đánh giá khóa học. Tự thiết kế bảng reviews, viết Model, Controller, View theo đúng khuôn mẫu bạn đã học. Đây là bài kiểm tra xem bạn thực sự nắm được mô hình MVC hay chỉ chép theo.
  3. Chuyển project sang Laravel. Khi đã hiểu MVC tự viết, bạn sẽ thấy framework giải quyết đúng những chỗ project này còn vá víu: định tuyến, kiểm tra quyền, lọc dữ liệu đầu ra, quản lý kết nối database.

All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí