rfc:class-naming
Phiên bản: 1.0
Ngày: 2017-06-03
Tác giả: Richard Fussenegger,
Trạng thái: Được chấp nhận
Giới thiệu
Tiêu chuẩn mã hóa PHP không bao gồm cách viết tên lớp. Điều này dẫn đến ma sát trong cộng đồng người dùng hiện đang theo đề xuất tiêu chuẩn PSR-1. Mở rộng tiêu chuẩn mã hóa hiện tại của chúng tôi để trình bày các trường hợp cạnh về chữ viết tắt và từ viết tắt/khởi tạo sẽ giải quyết bất kỳ cuộc thảo luận nào trong tương lai.
Đề nghị
Mở rộng tiêu chuẩn mã hóa để chỉ định rõ ràng cách xử lý các từ viết tắt và từ viết tắt/viết tắt khi viết tên lớp cấp người dùng. Quy tắc hiện tại là:
Các lớp nên được đưa ra tên mô tả. Tránh sử dụng chữ viết tắt nếu có thể. Mỗi từ trong tên lớp nên bắt đầu bằng một chữ cái viết hoa, không có dấu phân cách nhấn mạnh [Camelcaps bắt đầu bằng một chữ cái viết hoa]. Tên lớp phải được tiền tố với tên của 'bộ cha' [ví dụ: tên của phần mở rộng] ::
Tốt: 'Curl' 'Foobar'
'Curl'
'FooBar'Xấu: 'foobar' 'foo_bar'
'foobar'
'foo_bar'- Coding_standard
Mặc dù nên tránh các chữ viết tắt nên tránh, nhưng nó im lặng về những việc cần làm nếu chúng được sử dụng; đặc biệt là trong trường hợp viết tắt/khởi tạo. Về cơ bản có ba lựa chọn có thể bây giờ:
Pascalcase ngoại trừ các từ viết tắt/khởi tạo-đó là cách mà phần lớn các tên lớp cấp người dùng được viết và nó phù hợp với cách tiếp cận của nhiều ngôn ngữ lập trình khác. — which is how the majority of user-level class names are written, and it matches the approach of many other programming languages.
Luôn luôn là PascalCase-về cơ bản là những gì PSR-1 định nghĩa, tuy nhiên, nó sẽ làm cho hầu hết các tên lớp cấp người dùng hiện tại không hợp lệ. — which is basically what PSR-1 defines, however, it would make most of the currently existing user-level class names invalid.
Không làm gì cả - tất nhiên điều này tự động có nghĩa là bất kỳ cách tiếp cận nào được cho phép và các cuộc thảo luận của cộng đồng xung quanh chủ đề này sẽ tiếp tục. — which of course automatically means that any approach is allowed, and the community discussions around this topic will continue.
IMPORTANT!
Bất kể kết quả của RFC này là gì, các tên lớp cấp người dùng hiện tại không bắt buộc phải thay đổi. Mặc dù có thể [tên lớp là không nhạy cảm trường hợp]. Lý do tại sao đổi tên không được đề xuất là đơn giản: RFC này có lẽ sẽ thất bại vì có quá nhiều người chống lại những thay đổi mỹ phẩm hoàn toàn như vậy.
IMPORTANT!
Pascalcase trừ các từ viết tắt/khởi tạo
Tên lớp phải là danh từ mô tả trong pascalcase và càng ngắn càng tốt. Mỗi từ trong tên lớp nên bắt đầu bằng một chữ cái viết hoa, mà không cần dấu gạch dưới. Tên lớp phải được tiền tố với tên của cha mẹ Set Set [ví dụ: tên của phần mở rộng] nếu không có không gian tên được sử dụng. Chữ viết tắt và từ viết tắt cũng như các chủ nghĩa khởi tạo nên tránh bất cứ khi nào có thể, trừ khi chúng được sử dụng rộng rãi hơn nhiều so với dạng dài [ví dụ HTTP hoặc URL]. Chữ viết tắt bắt đầu bằng một chữ cái viết hoa theo sau là chữ thường, trong khi các từ viết tắt và đầu tiên được viết theo ký hiệu tiêu chuẩn của chúng. Việc sử dụng các từ viết tắt và bản khởi tạo không được phép nếu chúng không được áp dụng và công nhận rộng rãi như vậy.
Tốt: 'Curl' 'CurlResponse' 'httpstatuscode' 'url' 'btreemap' [bản đồ b-tree] 'id' [định danh] 'id' [tài liệu nhận dạng] 'char' [ký tự] 'intl' [quốc tế hóa] 'radar '[Phát hiện radio và phạm vi]
'Curl'
'CurlResponse'
'HTTPStatusCode'
'URL'
'BTreeMap' [B-tree Map]
'Id' [Identifier]
'ID' [Identity Document]
'Char' [Character]
'Intl' [Internationalization]
'Radar' [Radio Detecting and Ranging]Xấu: 'curl' 'curl_response' 'httpstatuscode' 'url' 'btreemap' 'id' [định danh] 'char' 'intl' 'radar' [phát hiện radio và phạm vi]
'curl'
'curl_response'
'HttpStatusCode'
'Url'
'BtreeMap'
'ID' [Identifier]
'CHAR'
'INTL'
'RADAR' [Radio Detecting and Ranging]- GitHub PR #2552
Luôn luôn là Pascalcase
Tên lớp phải là danh từ mô tả trong pascalcase và càng ngắn càng tốt. Mỗi từ trong tên lớp nên bắt đầu bằng một chữ cái viết hoa, mà không cần dấu gạch dưới. Tên lớp phải được tiền tố với tên của cha mẹ Set Set [ví dụ: tên của phần mở rộng] nếu không có không gian tên được sử dụng. Chữ viết tắt và từ viết tắt cũng như các chủ nghĩa khởi tạo nên tránh bất cứ khi nào có thể, trừ khi chúng được sử dụng rộng rãi hơn nhiều so với dạng dài [ví dụ HTTP hoặc URL]. Chữ viết tắt, từ viết tắt và giới thiệu theo cùng một chữ hoa như bất kỳ từ nào khác.
Tốt: 'Curl' 'Curlresponse' 'httpstatuscode' 'url' 'btreemap' [bản đồ b-cây] 'id' [tài liệu nhận dạng và nhận dạng] 'char' [ký tự] 'intl' [quốc tế hóa] 'radar' [phát hiện radio và phạm vi]
'Curl'
'CurlResponse'
'HttpStatusCode'
'Url'
'BTreeMap' [B-tree Map]
'Id' [Identifier and Identity Document]
'Char' [Character]
'Intl' [Internationalization]
'Radar' [Radio Detecting and Ranging]Xấu: 'curl' 'curl_response' 'httpstatuscode' 'url' 'btreemap' 'id' 'char' 'intl' 'radar'
'curl'
'curl_response'
'HTTPStatusCode'
'URL'
'BtreeMap'
'ID'
'CHAR'
'INTL'
'RADAR'- GitHub PR #2553
Thay đổi lạc hậu không tương thích
Không, chúng tôi chỉ cập nhật các tiêu chuẩn mã hóa cho tương lai.
Phạm vi tương lai
Cập nhật tên lớp cấp người dùng hiện tại theo kết quả của RFC này.
Đề xuất lựa chọn bỏ phiếu
Đơn giản 50%+1 phiếu bầu đa số:
Bản vá và bài kiểm tra
Người giới thiệu
rfc/class-naming.txt
· Sửa đổi lần cuối: 2017/09/22 13:28 [Chỉnh sửa bên ngoài]