Hướng dẫn php autoloading standards

1. PSR là gì?

PSR viết tắt của cụm từ PHP Standard Recommendation là các tiêu chuẩn viết code trong ngôn ngữ PHP được đưa ra bởi tổ chức PHP-FIG [PHP Framework Interop Group]. PSR có rất nhiều các tiêu chuẩn khác nhau từ PSR-0 đến PSR-19, mỗi tài liệu đặc tả về những tiêu chuẩn viết code khác nhau cho những công việc khác nhau trong lập trình PHP. Thiết lập tiêu chuẩn viết code là rất quan trọng trong lập trình theo nhóm, nó giúp code dễ đọc, dễ phát hiện sai sót khi kiểm tra bởi các thành viên khác nhau trong nhóm. Tiêu chuẩn viết mã trong PHP là rất khác nhau giữa các framework và ngay cả các phiên bản PHP khác nhau, ví dụ tên phương thức có thể viết theo nhiều kiểu khác nhau như camelCase, snake_case... hoặc một ví dụ khác về cách thức sử dụng các thư viện PHP ngoài bằng cách sử dụng include thuần túy hoặc sử dụng tiêu chuẩn autoload. Chính vì vậy, PSR được hiệp hội phát triển framework ngồi lại và đưa ra các tiêu chuẩn chung cho viết code PHP. Trong viết code PHP có 4 tiêu chuẩn thường thấy nhất là PSR-0, PSR-1, PSR-2 và PSR-4, chúng ta cùng xem chúng là những tiêu chuẩn gì? PSR-0 và PSR-4 là tiêu chuẩn về đặt tên namespace và cách load các thư viện PHP tự động. Từ tháng 10 năm 2014, tiêu chuẩn PSR-0 không còn được dùng nữa và khuyến cáo chuyển sang PSR-4. PSR-1 và PSR-2 là các tiêu chuẩn cơ bản về viết mã nguồn và hiện PSR-2 được coi là tiêu chuẩn phổ biến cho "phong cách" viết code.

2. Autoloading là gì?

Composer là một công cụ tuyệt vời cho các lập trình viên PHP, nó giúp cho việc quản lý các gói thư viện dễ dàng. Trong bài viết này chúng ta không đi sâu vào composer mà chỉ tìm hiểu cách thức composer quản lý sự phụ thuộc giữa các gói thư viện thông qua autoloading. Vậy autoloading là gì? Vấn đề: Khi chúng ta viết một ứng dụng cho sử dụng một danh sách dài các thư viện, ở mỗi file code PHP chúng ta phải thực hiện include chúng vào những đoạn nào có gọi đến các class này, nếu danh sách này dài hàng vài chục dòng thì quả là vấn đề. Giải pháp: include tất cả các class này ở phần đầu mỗi file PHP. Giải pháp tốt hơn: Ở những đâu cần gọi đến các class này, thực hiện tải chúng ở thời điểm đó, như vậy ứng dụng không cần tải tất cả các class trong các thư viện cho tất cả các file PHP và chi tiết hơn là các phiên làm việc. Cách thức tải và sử dụng các class như vậy gọi là autoloading.

3. Tạo autoloader riêng

Để hiểu rõ cơ chế autoloading, chúng ta sẽ cùng nhau thử tạo ra một autoloader riêng. Bắt đầu bằng một ví dụ mà chúng ta thường viết kiểu này trước đây: Chúng ta có hai Class A và B ở hai file khác nhau A.php và B.php

Chủ Đề