Tại FPT Polytechnic, sinh viên theo học ngành Thiết kế trang web từ cơ bản cũng như đến chuyên ngành hẹp backend sẽ được làm quen cả quá trình học ngôn ngữ lập trình PHP từ cơ bản đến nâng cao và framework Laravel. Cũng từ đó các bạn sẽ “nằm lòng” được “tất tần tật” kiến thức về PSR – 4.

Sau khi học căn bản, bắt đầu chuyên ngành hẹp Lập trình web backend môn học PHP2 là môn học nền tảng. Ngoài việc các bạn được trang bị kiến thức chính của lập trình PHP là hướng đối tượng, đồng thời các bạn cũng được gợi ý và bổ sung thêm một số kỹ năng liên quan không thể bỏ qua. Trong đó, việc tìm hiểu và ứng dụng quy chuẩn PSR-4 vào assignment là điều khuyến khích sinh viên phải áp dụng. Vậy PSR-4 là gì?
Trước đây, ở những môn học trước khi học lập trình PHP, việc nạp các file thư viện, mã dùng lại vào một file PHP khác thường dùng các lệnh include hoặc require. Điều này thực sự mất thời gian và rắc rối. Trong khi đó, PHP version5 đã có các hàm trợ giúp tự động hóa việc gọi thư viện bằng các hàm như: spl_autoload_register, spl_autoload function, spl_autoload_extensions …
Từ các hàm này cùng với khái niệm namespace trong PHP, các lập trình viên xây dựng cho mình một bộ code tự động nạp. Tuy nhiên để dễ dàng chia sẻ dùng lại code giữa các framework, giữa các dự án …, cộng đồng PHP thống nhất một cách thức tự động nạp thư viện theo một chuẩn bố trí thư viện. Việc thống nhất đó hình thành một tiêu chuẩn nên tuân theo đó là PSR – 4 Autoload.
“PSR” là viết tắt của “PHP Standards Recommendation” (Đề xuất tiêu chuẩn PHP). Với tiêu chuẩn này, người dùng phải tuân theo một số quy tắc về cách tổ chức các namespace và đường dẫn tệp tin trong dự án PHP. Điều này giúp giảm bớt công đoạn cấu hình autoloader và giữ cho mã nguồn dễ bảo trì.
Ví dụ, nếu bạn có một namespace như MyNamespace\MyClass, thì theo PSR-4, bạn có thể đặt lớp này trong một tệp tin có đường dẫn như src/MyNamespace/MyClass.php hoặc (app/MyNamespace/MyClass.php). Autoloader sẽ tự động tìm kiếm và tải các tệp tin tương ứng dựa trên quy tắc này.

Các bạn có thể tham khảo chi tiết và quy tắc theo PHP-FIG (PHP Framework Interop Group) tại link này.
Đó là cách thống nhất viết bố trí code PHP trên các thư mục và theo các namespace. Khi đã viết code tuân thủ theo hướng dẫn này thì các framework khác nhau đều sử dụng một cơ chế tự động nạp tương tự nhau nên có thể dùng lại thư viện.

Trong khuôn khổ môn học PHP2 tại Trường Cao đẳng FPT Polytechnic, trong bài assignment của các bạn cần sử dụng một thư viện Autoload để tự động nạp cấu trúc trên khi cần dùng đến. Các bạn có thể dùng Composer để thực thi phát sinh mã tự động nạp thư viện theo tiêu chuẩn PSR-4.
Các bước các bạn thực hiện như sau:
- Tổ chức thư mục và class như gợi ý như trên src/MyNamespace/MyClass.php hoặc (app/MyNamespace/MyClass.php)
- Tạo file composer.json với nội dung

hoặc đơn giản hơn:

→với khai báo này bạn sẽ có cách khai báo thư mục như sau:

- Nếu máy bạn chưa cài đặt composer thì cài đặt tại đây
- Sau đó bạn gõ lệnh (từ thư mục gốc của dự án, cửa sổ terminal của Visual Code):
- composer install
- hoặc: composer dump-autoload
- Sáu đó, hệ thống tự tạo thêm thư mục “vendor” trong đó có chứa thư mục “composer” và file autoload.php. Đồng thời, hệ thống cũng phát sinh thêm một file composer.lock ngay thư mục gốc cùng với file composer.json.
- Bây giờ, bạn có thể gõ dòng lệnh “/vendor/autoload.php” ngay dòng đầu tiên trong file index.php.
- Từ đó, khi sử dụng thư viện các bạn chỉ việc gọi là xong, không cần phải require hay include như trước đây.
Với những thao tác đơn giản, các bạn dễ dàng áp dụng vào dự án assignment của mình. việc học code trở nên đơn giản hơn. Điều đáng quan tâm là code web của mình đúng quy chuẩn và chuyên nghiệp, để mình có thể có nhiều thời gian nghiên cứu thêm các kỹ thuật mới, hoàn chỉnh hơn dự án của mình.
Giảng viên: Trần Bá Hộ
Bộ môn Công nghệ Thông tin
Trường Cao đẳng FPT Polytechnic cơ sở TP HCM

