PSR là gì – Các yêu cầu khi viết code PHP

530
PSR là gì

Hôm nay chúng ta sẽ cùng tìm hiểu PSR là gì. Bên cạnh đó cũng sẽ tìm hiểu về các yêu cầu khi viết code PHP. Cùng bắt đầu nhé!

  Quy tắc 2-4-2-5 cân bằng giữa cuộc sống và công việc của 1 nữ lập trình viên
  7 magic method trong lập trình PHP có thể bạn chưa biết.

PSR là gì?

PSR là viết tắt của PHP Special Request, là những tiêu chuẩn khi code PHP, nó được cộng đồng PHP xây dựng được công bố bởi PHP Framework Interop Group và áp dụng theo.

PHP Framework Interop Group (PHP-FIG): là nhóm đã được một số nhà phát triển khung tại php | tek khởi động vào năm 2009. Kể từ đó, nhiều thành viên khác đã áp dụng và được bình chọn, tăng quy mô của nhóm từ 5 lên hơn 20.

Trong quá trình làm việc, các hệ thống sử dụng các framework khác nhau có thể phải kết hợp với nhau để thực hiện những bài toán cụ thể. Tuy nhiên đối với mỗi framework của mỗi team lại code theo những chuẩn khác nhau, do đó nảy sinh ra vấn đề là cần có một bộ quy tắc chuẩn để giải quyết việc các code không chuẩn này.

Xem thêm Framework là gì?

Và PSR ra đời nhắm chuẩn hóa coding convention cho tất cả các framework, các framework chỉ việc tuân theo các chuẩn này thì các hệ thống framework khác nhau vẫn sẽ dùng chung một quy tắc, do đó sẽ thuận lợi cho việc phát triển sau này.

Ai chỉ định bạn đưa ra những tiêu chuẩn này?

FIG có thể không phải là một nhóm PHP chính thức, nhưng nếu đó là trường hợp ai sẽ thực hiện việc bổ nhiệm? FIG đại diện cho một phần của cộng đồng và theo thời gian, đó sẽ đại diện cho nhiều lựa chọn dự án hơn. Bất kỳ ai đăng ký vào Google Group đều là một phần của PHP-FIG.

Thành viên Cộng đồng PHP-FIG là những người có thể ảnh hưởng đến các tiêu chuẩn, đưa ra đề xuất, đưa ra phản hồi, v.v. Chỉ Thành viên bỏ phiếu PHP-FIG mới có thể bắt đầu hoặc tham gia bỏ phiếu , nhưng các giai đoạn thảo luận và hình thành liên quan đến tất cả mọi người.

Vậy PSR có bao nhiêu chuẩn?

Đến thời điểm này (1/7/2019) có 20 tiêu chuẩn từ PSR-0 đến PSR-19, trong đó có 13 tiêu chuẩn đã được phê duyệt, ngoài ra có các tiêu chuẩn Đang soạn thảo và có tiêu chuẩn đã lỗi thời(ví dụ PSR-0 đã lỗi thời, bị thay bởi PSR-4).

Chúng được công bố trên trang web của PHP-FIG: https://www.php-fig.org.

Tên Miêu tả Trạng thái
PSR-0 Tiêu chuẩn tự động tải Nó mô tả các yêu cầu bắt buộc phải được tuân thủ để có khả năng tương tác của trình tải tự động. Từ 30-12-2014 PSR-0 được thay thế bởi PSR-4
PSR-1 Tiêu chuẩn code cơ bản Nó bao gồm những gì nên được coi là các yếu tố code tiêu chuẩn được yêu cầu để đảm bảo mức độ tương tác kỹ thuật cao giữa code PHP được chia sẻ Đã thông qua
PSR-2 Phong cách code Nó xem xét PSR-1 và nó nhằm giảm ma sát nhận thức khi quét mã code từ các tác giả khác nhau. Nó làm như vậy bằng cách liệt kê một bộ quy tắc và kỳ vọng được chia sẻ về cách định dạng mã code PHP. Đã thông qua
PSR-3 Giao diện logger Nó mô tả một giao diện chung cho các thư viện đăng nhập. Đã thông qua
PSR-4 Tiêu chuẩn tự động tải Nó mô tả một đặc tả cho các lớp tự động tải từ các đường dẫn tệp. Nó hoàn toàn có thể tương tác và có thể được sử dụng cùng với bất kỳ thông số kỹ thuật tự động tải nào khác, bao gồm PSR-0. PSR này cũng mô tả nơi đặt các tệp sẽ được tải tự động theo đặc điểm kỹ thuật. Đã thông qua
PSR-5 Tiêu chuẩn PHPDoc Mục đích chính của PSR này là cung cấp một định nghĩa đầy đủ và chính thức về tiêu chuẩn PHPDoc. PSR này khác với tiền thân của nó, Tiêu chuẩn PHPDoc thực tế liên quan đến phpDocumentor 1.x, để cung cấp hỗ trợ cho các tính năng mới hơn trong ngôn ngữ PHP và để giải quyết một số thiếu sót của người tiền nhiệm. Dự thảo
PSR-6 Giao diện bộ nhớ đệm Mục tiêu của PSR này là cho phép các nhà phát triển tạo các thư viện nhận biết bộ đệm có thể được tích hợp vào các khung và hệ thống hiện có mà không cần phát triển tùy chỉnh. Đã thông qua
PSR-7 Giao diện tin nhắn HTTP Nó mô tả các giao diện phổ biến để biểu diễn các thông điệp HTTP như được mô tả trong RFC 7230 và RFC 7231 và URI để sử dụng với các thông điệp HTTP như được mô tả trong RFC 3986. Đã thông qua
PSR-8 Giao diện có thể chạy được Nó thiết lập một cách chung cho các đối tượng thể hiện sự đánh giá và hỗ trợ lẫn nhau bằng cách siết chặt. Điều này cho phép các đối tượng hỗ trợ lẫn nhau theo cách xây dựng, tăng cường hợp tác giữa các dự án PHP khác nhau. Chưa được xem xét
PSR-9 Công khai an ninh Nó mang lại cho dự án một cách tiếp cận được xác định rõ ràng để cho phép người dùng cuối khám phá các tiết lộ bảo mật bằng cách sử dụng định dạng có cấu trúc được xác định rõ ràng cho các tiết lộ này. Chưa được xem xét
PSR-10 Tư vấn bảo mật Nó cung cấp cho các nhà nghiên cứu, lãnh đạo dự án, lãnh đạo dự án thượng nguồn và người dùng cuối một quy trình được xác định và có cấu trúc để tiết lộ các lỗ hổng bảo mật Chưa được xem xét
PSR-11 Giao diện container Nó mô tả một giao diện chung cho các container phụ thuộc. Mục tiêu là để chuẩn hóa cách các khung và thư viện sử dụng một container để thu được các đối tượng và tham số (được gọi là các mục trong phần còn lại của tài liệu này). Đã thông qua
PSR-12 Hướng dẫn kiểu mã hóa mở rộng Nó mở rộng, mở rộng và thay thế PSR-2, hướng dẫn kiểu mã hóa và yêu cầu tuân thủ PSR-1, tiêu chuẩn mã hóa cơ bản. Dự thảo
PSR-13 Liên kết Hypermedia Nó mô tả các giao diện phổ biến để đại diện cho một liên kết hypermedia. Đã thông qua
PSR-14 Quản lý sự kiện Nó mô tả các giao diện phổ biến để gửi và xử lý các sự kiện. Đã thông qua
PSR-15 Trình xử lý yêu cầu máy chủ HTTP Nó mô tả các giao diện phổ biến cho các trình xử lý yêu cầu máy chủ HTTP và các thành phần phần mềm trung gian của máy chủ HTTP sử dụng các thông điệp HTTP. Đã thông qua
PSR-16 Bộ nhớ cache đơn giản Nó mô tả một giao diện đơn giản nhưng có thể mở rộng cho một mục bộ đệm và trình điều khiển bộ đệm. Đã thông qua
PSR-17 HTTP Factories Nó mô tả một tiêu chuẩn chung cho các nhà máy tạo ra các đối tượng HTTP tuân thủ PSR-7. Đã thông qua
PSR-18 Máy khách HTTP Nó mô tả một giao diện chung để gửi các yêu cầu HTTP và nhận phản hồi HTTP. Đã thông qua
PSR-19 Thẻ PHPDoc Nó cung cấp một danh mục đầy đủ các thẻ trong tiêu chuẩn PHPDoc . Dự thảo

Kết luận

PSR chỉ là một chuẩn viết code chung cho mọi người, nó không bắt buộc mọi người phải tuân theo. Nhưng nếu muốn có sự thống nhất trong mọi người mọi dự án thì đây là một cách làm rất tuyệt vời. Nó đem lại khả năng tương tác của các thành phần và cung cấp một cơ sở kỹ thuật chung để thực hiện các khái niệm đã được chứng minh => lập trình tối ưu.

Nguồn wiki.

Có thể bạn quan tâm:

Xem thêm việc làm PHP Developer mới nhất tại TopDev

TopDev via viblo.asia

  Các nguyên tắc lập trình mà lập trình viên nên biết
  Quy tắc 24x3 cho sáng tạo trong lập trình!