Tổng quan dự án
Thuộc phần Lập trình hướng đối tượng trong hành trình PHP của Coddy. Bài học 82 trên 91.
Thử thách
DễHãy bắt đầu dự án Hệ thống quản lý thư viện bằng cách thiết lập nền tảng: một lớp Book đơn giản sẽ đóng vai trò là đối tượng miền cốt lõi trong suốt chương này.
Bạn sẽ tổ chức code trong hai tệp:
Book.php: Tạo một lớpBookđại diện cho một cuốn sách trong thư viện. Sách cần có ba thuộc tính:isbn(chuỗi),title(chuỗi) vàauthor(chuỗi). Hãy dùng cách khai báo tham số trong hàm khởi tạo để code gọn gàng. Thêm một phương thức có têngetInfo()trả về chuỗi đã định dạng chứa thông tin sách theo mẫu này:"[title] by [author] (ISBN: [isbn])"main.php: Nạp tệp Book và khởi tạo lớp. Bạn sẽ nhận ba đầu vào: ISBN, tên sách và tác giả. Tạo một instanceBookvới các giá trị này rồi in ra kết quả khi gọigetInfo().
Đây là viên gạch nền tảng đầu tiên cho hệ thống thư viện của bạn. Trong các bài học tiếp theo, bạn sẽ mở rộng nền tảng này bằng cách thêm người dùng, chức năng mượn sách và các tính năng quản trị, tất cả phối hợp với nhau thành một ứng dụng thống nhất.
Tự làm thử
<?php
require_once 'Book.php';
// Đọc đầu vào
$isbn = trim(fgets(STDIN));
$title = trim(fgets(STDIN));
$author = trim(fgets(STDIN));
// TODO: Tạo một instance của Book bằng các giá trị đầu vào
// TODO: In ra kết quả khi gọi getInfo()
?>Tất cả bài học trong Lập trình hướng đối tượng
1Nền tảng về OOP
Tệp bên ngoàiGiới thiệu về OOPLớp và đối tượngTừ khóa $thisPhương thứcThuộc tínhHàm khởi tạo (__construct)Hàm hủy (__destruct)Ôn tập: máy tính đơn giản4Kế thừa
Kế thừa cơ bảnTừ khóa parent::Ghi đè phương thứcTừ khóa finalLớp trừu tượngÔn tập: hệ thống phân cấp nhân viên7Đóng gói
Công khai, được bảo vệ, riêng tưTìm hiểu sâu về bộ điều chỉnh quyền truy cậpGetter và setterẨn thông tinRút gọn hàm khởi tạo (8.0)Ôn tập: hệ thống hồ sơ học sinh2Không gian tên và tự động nạp
Giới thiệu về không gian tênTừ khóa useChuẩn tự động nạp PSR-4Trình tự động nạp của ComposerÔn tập: dự án có tổ chức5Giao diện và hợp đồng
Giới thiệu về giao diệnTriển khai giao diệnTriển khai nhiều giao diệnGiao diện và lớp trừu tượngGợi ý kiểu với giao diệnÔn tập: Máy tính hình học8Phương thức ma thuật
Giới thiệu về phương thức ma thuật__toString và __debugInfo__get, __set, __isset, __unset__call và __callStatic__clone và sao chép đối tượng__serialize và __unserializeÔn tập: Bộ sưu tập tùy chỉnh11Hệ thống kiểu dữ liệu và xử lý lỗi
Khai báo kiểu dữ liệuKiểu dữ liệu có thể nhận giá trị nullKiểu hợp và kiểu giaoCác lớp ngoại lệHệ thống phân cấp ngoại lệ tùy chỉnhTry, Catch, FinallyÔn tập: Trình xác thực biểu mẫu14Dự án: Quản lý thư viện
Tổng quan dự ánLớp sách và người dùng3Thuộc tính của lớp
Thuộc tính instance và staticHằng số trong lớpPhương thức và thuộc tính staticThuộc tính private và protectedThuộc tính chỉ đọc (PHP 8.1)Ôn tập: Trình quản lý tài khoản ngân hàng6Đa hình
Xem lại việc ghi đè phương thứcĐa hình qua giao diệnGợi ý kiểu và kiểu hợpLiên kết tĩnh muộnÔn tập: bộ xử lý thanh toánTự luyện tập: Trình biên dịch PHP online