⊗ppOpNsAu 105 of 107 menu

Tự động tải lớp trong OOP trong PHP

Bạn đã biết rằng để sử dụng một lớp nào đó, chúng ta phải kết nối nó thông qua require. Khi có rất nhiều lớp trong dự án, sẽ có nhiều kết nối, rất bất tiện để viết và khó kiểm soát.

Để giải quyết vấn đề này, tính năng tự động tải lớp đã được thêm vào PHP. Tính năng tự động tải cho phép PHP tự động tải tệp chứa lớp khi cố gắng truy cập lớp đó trong mã. Tuy nhiên, các lớp sẽ không tự động tải một cách đơn giản - chúng cần được đặt trong các thư mục của trang web theo một cách đặc biệt, tuân theo một quy ước nào đó về tên tệp và tên thư mục của lớp. Có thể sử dụng quy ước có sẵn trong PHP, hoặc tự nghĩ ra quy ước của riêng mình và sử dụng nó.

Trước tiên, hãy phân tích quy ước tiêu chuẩn của PHP. Quy ước này nằm ở chỗ nếu chúng ta có một tệp chứa lớp, thì đường dẫn qua các thư mục của trang web đến tệp đó phải trùng khớp với không gian tên của tệp, và tên tệp phải trùng khớp với tên của lớp được lưu trữ trong đó. Đồng thời, tên thư mục và tên tệp phải ở dạng chữ thường.

Hãy xem ví dụ. Giả sử chúng ta có lớp sau:

<?php namespace Core\Admin; class PageController { } ?>

Theo quy ước, lớp này phải được đặt trong thư mục /core/admin/ trong tệp pagecontroller.php.

Bây giờ, hãy sử dụng lớp của chúng ta trong tệp index.php mà không kết nối nó qua require, mà sử dụng tính năng tự động tải. Để làm điều này, ở đầu tệp nơi các lớp được gọi, nên gọi hàm spl_autoload_register. Hãy thực hiện điều đó:

<?php spl_autoload_register(); // bật tính năng tự động tải $obj = new Core\Admin\PageController; // tạo đối tượng một cách thoải mái ?>

Trong tệp index.php, hãy bật tính năng tự động tải lớp. Tuân theo quy ước về tên thư mục và tệp, hãy tạo lớp Core\User, lớp Core\Admin\Controller và lớp Project\User\Data. Trong tệp index.php, hãy tạo các đối tượng của những lớp này.

Tiếng Việt
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbek
Chúng tôi sử dụng cookie để vận hành trang web, phân tích và cá nhân hóa. Việc xử lý dữ liệu được thực hiện tuân theo Chính sách bảo mật.
chấp nhận tất cả tùy chỉnh từ chối