Quản lý Thư Viện Cơ Bản (OOP + MySQL)
🎯 Mục tiêu học tập
-
Vận dụng OOP trong PHP để mô hình hóa bài toán quản lý thư viện.
-
Áp dụng tính bao đóng (Encapsulation) và tính kế thừa (Inheritance).
-
Kết hợp PHP hướng đối tượng với cơ sở dữ liệu MySQL để lưu trữ và truy xuất dữ liệu.
🧱 Yêu cầu bài tập
-
Tạo cơ sở dữ liệu (Database)
library_dbvới 2 bảng:Bảng 1:
booksTrường Kiểu dữ liệu Ghi chú id INT (PK, AI) Mã sách title VARCHAR(100) Tên sách author VARCHAR(100) Tác giả year INT Năm xuất bản Bảng 2:
ebooksTrường Kiểu dữ liệu Ghi chú id INT (PK, AI) Mã sách điện tử title VARCHAR(100) Tên sách author VARCHAR(100) Tác giả year INT Năm xuất bản file_size FLOAT Dung lượng (MB) format VARCHAR(20) Định dạng (PDF, EPUB…)
-
Tạo lớp
Database(hoặcDBConnection)-
Chịu trách nhiệm kết nối và truy vấn MySQL.
-
Dùng tính bao đóng (encapsulation) để bảo vệ thông tin kết nối (
host,username,password,database). -
Cung cấp các phương thức:
-
connect()để tạo kết nối.
-
-
-
Tạo lớp
Book-
Các thuộc tính:
title,author,year(đặtprivate). -
Phương thức:
-
Constructor để khởi tạo dữ liệu.
-
Getter/Setter cho từng thuộc tính.
-
save()để lưu thông tin sách vào bảngbooksthông qua lớpDatabase. -
getBookInfo()để hiển thị thông tin sách.
-
→ Áp dụng Encapsulation để quản lý dữ liệu an toàn qua getter/setter.
-
-
Tạo lớp
EBookkế thừa từBook-
Bổ sung thêm thuộc tính:
fileSize,format. -
Ghi đè (
override) phương thứcsave()để lưu dữ liệu vào bảngebooks. -
Ghi đè phương thức
getBookInfo()để hiển thị thêm thông tin file.
→ Áp dụng Inheritance để mở rộng từ lớp
Book. -
-
Trong chương trình chính:
-
Tạo một đối tượng
Book(ví dụ: “The Great Gatsby”). -
Tạo một đối tượng
EBook(ví dụ: “Clean Code”). -
Gọi phương thức
save()cho mỗi đối tượng để ghi vào CSDL. -
Gọi phương thức
getBookInfo()để hiển thị thông tin trên trình duyệt.
-
📋 Yêu cầu báo cáo sinh viên
-
Thiết kế và nộp sơ đồ lớp UML cho 3 lớp:
Database,Book,EBook. -
Giải thích rõ:
-
Cách sử dụng Encapsulation trong lớp
BookvàDatabase. -
Cách lớp
EBookkế thừa lớpBook. -
Quy trình thêm mới dữ liệu vào CSDL qua phương thức hướng đối tượng.
-