Bạn sử dụng quy ước đặt tên nào cho các lớp php? [đóng cửa]


8

Tôi thực sự thích sử dụng ClassNamesmemberNamestheo quy ước nhưng tôi không chắc làm thế nào tôi có thể đặt tên cho tệp chứa một lớp.

Tôi thích làm cho các lớp của tôi được định nghĩa trong một tệp có cùng tên với lớp. Nhưng tôi cũng thích làm cho các tập tin php tất cả chữ thường. Thế là tôi mâu thuẫn.

Nếu tôi có một lớp được gọi là ProductGroupnên có thể được định nghĩa trong ProductGroup.php, productgroup.phphoặc product_group.php?

Tôi biết không có câu trả lời đúng, vì vậy tôi đang tìm kiếm những gì phổ biến nhất hoặc ý kiến ​​của bạn về việc sử dụng .. bạn sử dụng cái gì?

Câu trả lời:


6

Trong công việc, chúng tôi sử dụng dấu gạch dưới làm dấu phân cách thư mục và đặt tên cho các tệp giống hệt như đường dẫn. Trình tải tự động rất đơn giản, nó chỉ phải thay thế _ bằng / và thêm '.php' vào cuối. ProjectName_Models_ Producttgroup () sẽ luôn nằm trong ProjectName / Model / Productgroup.php. Nó có thể tạo ra một số tên lớp rất dài, nhưng nó không thực sự quan trọng với IDE.

Bạn có thể sử dụng cùng một quy ước, nhưng chỉ cần chạy strtolower () trước khi bao gồm tệp.


3
+1 Đây là quy ước được thông qua bởi Zend Framework và dường như được chấp nhận rộng rãi.
bogeymin

bạn có nghĩa là bạn đặt tên lớp chính xác giống như đường dẫn tệp?
systemovich

@Geoffery, Vâng, nó hoàn toàn giống nhau ngoại trừ dấu gạch chéo được thay thế bằng dấu gạch dưới. Tất cả các máy chủ của chúng tôi chạy trên Linux vì vậy vấn đề viết hoa và nó tạo ra một trình tải tự động rất đơn giản.
Asa Ayers

1

Tôi thường sẽ đặt một lớp 'Nhóm sản phẩm' vào một tệp có tên 'ProductgroupClass.php', thường được lưu trữ trong cấu trúc thư mục 'lớp'.


11
Tôi nghĩ rằng đó là quá mức cần thiết. Việc thêm lớp vào một tệp trong thư mục có tên là các lớp dường như quá dư thừa
Matt Ellen

1

Tôi cố gắng đặt tên tệp của mình giống như tên lớp nhưng trong trường hợp thấp hơn. Điều này giúp ra với các autoloadchức năng là tốt.


1

Tôi sử dụng một phiên bản sửa đổi của Tiêu chuẩn mã hóa PEAR . Như đã đề cập trước khi nó giúp tải tự động, và tôi thấy nó trông gọn gàng hơn và dễ đọc IMO hơn. Về cơ bản những gì nó đi xuống chỉ là quyết định những gì làm việc cho bạn và gắn bó với nó. Miễn là tất cả các mã trông giống nhau, cuối cùng phần còn lại sẽ rơi vào vị trí.


0

Tôi có các tệp lớp trải rộng các ứng dụng ("thư viện") và các tệp lớp dành riêng cho các ứng dụng. Các thư viện có một tiền tố để giảm thiểu khả năng xung đột với bất kỳ mã bên thứ ba nào mà chúng tôi có thể bao gồm, tức là. tại "Công ty ngọt ngào của tôi", chúng tôi có thể sử dụng tên lớp "MSCPerson" thay vì "Person".

Chúng tôi sử dụng CamelCasetên lớp và các tệp lớp được đặt tên CamelCase.class.php. Hầu hết các tệp lớp có một lớp duy nhất và bất kỳ trường hợp ngoại lệ cụ thể nào của lớp, nhưng quy tắc này không được đặt trong đá. Thật tuyệt khi có các tệp một lớp cho gftính năng của vim .


0

Cá nhân, tôi lưu trữ một lớp có tên MyClasstrong một tệp được gọi MyClass.class.php, bên trong một classesthư mục.
Chức năng tự động tải của tôi sau đó đơn giản như

function __autoload($class) {
    require_once("/classes/".$class.".class.php");
}

Không có cấu trúc bên trong classesthư mục, nhưng trong các dự án của tôi thì điều này không bao giờ là vấn đề. Nếu bạn cần phải có thư mục con, phương pháp được Asa Ayers đề xuất là rất thiết thực và dễ thực hiện.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.