Phần này của tiêu chuẩn bao gồm những gì nên được coi là các yếu tố mã hóa tiêu chuẩn được yêu cầu để đảm bảo khả năng tương tác kỹ thuật cao giữa các mã PHP được chia sẻ
Các từ khóa "PHẢI", "KHÔNG PHẢI", "BẮT BUỘC", "SẼ", "SẼ KHÔNG", "NÊN", "KHÔNG NÊN", "KHUYẾN NGHỊ", "CÓ THỂ" và "TÙY CHỌN" trong tài liệu này là
1. Tổng quan
Tệp PHẢI chỉ sử dụng and tags.
Files MUST use only UTF-8 without BOM for PHP code.
Files SHOULD either declare symbols (classes, functions, constants, etc.) or cause side-effects (e.g. generate output, change .ini settings, etc.) but SHOULD NOT do both.
Namespaces and classes MUST follow an "autoloading" PSR: [PSR-0, PSR-4].
Class names MUST be declared in StudlyCaps
Các hằng số của lớp PHẢI được khai báo bằng tất cả chữ hoa với dấu phân cách gạch dưới
Tên phương thức PHẢI được khai báo trong camelCase
2. Files¶
2.1. PHP Tags¶
PHP code MUST use the long tags or the short-echo tags; it MUST NOT use the other tag variations.
2.2. Character Encoding¶
PHP code MUST use only UTF-8 without BOM.
2.3. Side Effects¶
A file SHOULD declare new symbols (classes, functions, constants, etc.) and cause no other side effects, or it SHOULD execute logic with side effects, but SHOULD NOT do both.
The phrase "side effects" means execution of logic not directly related to declaring classes, functions, constants, etc., merely from including the file.
"Side effects" include but are not limited to: generating output, explicit use of require hoặc include, kết nối với các dịch vụ bên ngoài, sửa đổi cài đặt ini, đưa ra lỗi hoặc ngoại lệ, sửa đổi biến toàn cục hoặc biến tĩnh, đọc hoặc ghi vào tệp, v.v.
Sau đây là một ví dụ về tệp có cả khai báo và tác dụng phụ; . e, một ví dụ về những điều cần tránh
Ví dụ sau đây là một tệp chứa các khai báo không có tác dụng phụ; . e. , một ví dụ về những gì để mô phỏng
3. Không gian tên và tên lớp
Không gian tên và các lớp PHẢI tuân theo PSR "tự động tải". [PSR-0, PSR-4]
Điều này có nghĩa là mỗi lớp nằm trong một tệp riêng và nằm trong một không gian tên của ít nhất một cấp. tên nhà cung cấp cấp cao nhất
Tên lớp PHẢI được khai báo trong StudlyCaps
Mã được viết cho PHP 5. 3 và sau đó PHẢI sử dụng không gian tên chính thức
Ví dụ
Mã được viết cho 5. 2. x trở về trước NÊN sử dụng quy ước đặt tên giả của tiền tố Vendor_ trên tên lớp
4. Các hằng số, thuộc tính và phương thức của lớp
Thuật ngữ "lớp" dùng để chỉ tất cả các lớp, giao diện và đặc điểm
4. 1. hằng số
Các hằng số của lớp PHẢI được khai báo bằng tất cả chữ hoa với dấu phân cách gạch dưới. Ví dụ
Tên tài sản4.2. Properties¶
This guide intentionally avoids any recommendation regarding the use of $StudlyCaps, and tags.0 hoặc and tags.1
Bất kỳ quy ước đặt tên nào được sử dụng NÊN được áp dụng nhất quán trong phạm vi hợp lý. Phạm vi đó có thể là cấp nhà cung cấp, cấp gói, cấp lớp hoặc cấp phương thức
Tên tệp phải được viết bằng chữ thường với ____25_______ làm dấu phân cách giữa các từ, ví dụ _____26_______. Trong một số trường hợp nhất định, chẳng hạn như tạo 'trình tạo trang' bằng ACF, dấu gạch dưới (_) được cho phép, nhưng nhìn chung bạn nên sử dụng dấu gạch nối làm dấu phân cách. Điều này được sử dụng khi đặt tên tập tin xem
Các tệp chứa một lớp nên được đặt tên giống như lớp 0. Luôn luôn chỉ có một lớp trên mỗi tệp. Chữ cái đầu tiên phải được viết hoa
Sử dụng bản soạn sẵn támshift làm cơ sở cho bất kỳ trang web dựa trên mẫu nào. Bạn nên làm theo cấu trúc hiện có của chủ đề ở đó
quy ước đặt tên
Sử dụng 1 khi đặt tên cho các phương thức và chức năng. Không viết tắt tên biến một cách không cần thiết — hãy để mã rõ ràng và tự viết tài liệu
Không gian tên và tên lớp
Không gian tên phải tuân theo cấu trúc tệp. Không gian tên chính là phiên bản CapitalCased của tên dự án. Vì vậy, trong trường hợp soạn sẵn, không gian tên mặc định là
Mỗi thư mục chứa các lớp tạo thành một không gian tên con
Xin lưu ý rằng WordPress 'sống' trong một không gian tên toàn cầu. Do đó, khi sử dụng các hàm và lớp từ lõi WordPress, cần đặt dấu gạch chéo trước tên lớp hoặc tên hàm để nó được gọi từ không gian tên chung hoặc sử dụng câu lệnh 2 ở đầu tệp. Ví dụ, gọi 3 bên trong lớp học của bạn nên được thực hiện như thế này
4_______0_______5_______0_______6, 7 và 8)Phạm vi 9 được sử dụng để làm cho biến/hàm đó có sẵn từ mọi nơi;
Phạm vi 7 được sử dụng khi bạn muốn biến/hàm của mình chỉ hiển thị trong lớp của chính nó
Phạm vi 8 được sử dụng khi bạn muốn hiển thị biến/hàm của mình trong tất cả các lớp mở rộng lớp hiện tại, bao gồm cả lớp cha
Nếu bạn đang làm việc trên các dự án với phiên bản PHP mới nhất, hãy sử dụng các tính năng mới nhất. Điều này có nghĩa là bạn cũng nên thêm các công cụ sửa đổi khả năng hiển thị liên tục nếu bạn đang làm việc trên PHP >= 7. 1