Nội dung chính của chuẩn PSR-4 (ok)

https://viblo.asia/p/php-autoloading-psr4-and-composer-V3m5Wy0QZO7

Nội dung chính của chuẩn PSR-4 đó là: Quy tắc tổ chức các thư mục code sao cho mọi class (bao gồm class, interface, trait) đều có thể được tham chiếu đến bằng cách viết mã như sau:

\<NamespaceName>(\<SubNamespaceNames>)*\<ClassName>
  • NamespaceName: Tiền tố đầu tiên bắt buộc phải có - có thể hiểu là tên vendor.

  • SubNamespaceNames: Các namespace con (theo sau NamespaceName đầu tiên). Có thể một hoặc nhiều.

    Các namespace liền kề nhau ở đầu có thể kết hợp tạo thành namespace prefix và tương ứng với ít nhất một base directory. Nhưng bắt đầu từ SubNamespace sau namespace prefix thì nó phải tương ứng với một thư mục con bên trong base directory, tên thư mục phải trùng với tên SubNamespace.

  • ClassName: Bắt buộc phải có tên file trùng với tên lớp ClassName, nằm trong thư mục con tương ứng với namespace cuối cùng.

Sự khác biệt chủ yếu của PSR-0 so với PSR-4 đó là, PSR-0 không có khái niệm namespace prefix nên cấu trúc namespace sẽ tương ứng với cấu trúc thư mục chứa class. Ngoài ra PSR-0 còn sử dụng thêm dấu gạch dưới _ trong ClassName để thể hiện các thư mục bổ sung chứa class theo sau các tên namespace. Một Lưu ý nữa đó là, dấu _ chỉ có ý nghĩa đặc biệt trong tên class, còn trong tên của namespace thì không.

Last updated