2009-07-30 28 views

Trả lời

38

Không có sự khác biệt ngoài những gì bạn thấy. Những cái có .class rất hữu ích nếu bạn sử dụng autoloading và không có thư mục cụ thể nơi tệp lớp học của bạn hoạt động. Nếu không, nó hoàn toàn tùy ý. (Tôi từng sử dụng ClassName.class.php.)

+0

cảm ơn một trill ... thats những gì tôi đã lookin fo – johnnietheblack

+3

Tôi thứ hai ... ClassName.class.php. –

5

Tôi thích MyClass.php - tên chính xác (bao gồm cả thủ đô) làm lớp.

Tuy nhiên, nếu bạn đang làm việc trên một dự án hiện có, bạn nên sử dụng bất kỳ kế hoạch đặt tên nào của dự án.

39

Tiêu chuẩn mã hóa của bạn là gì?

Thông thường để bắt đầu tên lớp bằng chữ cái viết hoa (ví dụ: class MyClass). Nếu bạn làm điều này, sau đó nó sau đó bạn sẽ đặt tên cho tập tin MyClass.php. Và MyClass.class.php cũng hoạt động.

MyClass.class là ý tưởng tồi có thể cho phép ai đó xem mã nguồn của bạn nếu họ yêu cầu tệp đó theo tên. Sử dụng phần mở rộng .php đảm bảo rằng người dùng sẽ chỉ thấy đầu ra sau khi tệp được xử lý bởi trình thông dịch PHP — cho một tệp không chứa gì ngoài một lớp — là một trang trống.

Cuối cùng, hãy xem autoload(), giúp bạn tiết kiệm được sự cố khi gọi số require_once để tải lớp học của bạn.


Cập nhật: Với PHP mã hóa tiêu chuẩn PSR-4, bây giờ có một cách bán chính thức đặt tên file lớp học của bạn. Lời khuyên trước — để đặt tên cho tệp lớp học của bạn giống với lớp có phần mở rộng là .php — vẫn đứng vững. Nhưng bây giờ bạn được yêu cầu đặt tệp lớp đó trong một thư mục con được đặt tên theo không gian tên lớp của bạn; PSR-4 yêu cầu tất cả các lớp của bạn phải được chứa trong một không gian tên do bạn xác định.

Bạn nhận được gì cho điều này? Tự động tải miễn phí! Nếu bạn đang sử dụng Composer, bạn có thể specify the top-level directory for your classes và Nhà soạn nhạc sẽ tự động tải chúng. Không có thêm require câu nào để tải các lớp học của bạn.

Nếu bạn không muốn làm điều này, bạn không phải: PSR-4 là một đề xuất , không phải là yêu cầu.

+0

Nate, tôi đã nghe nói về autoload ... là ổn định? php.net về cơ bản gọi nó là một nỗ lực mương cuối cùng? – johnnietheblack

+2

Cộng một cho vấn đề bảo mật được nâng lên với MyClass.class – benlumley

+0

Tôi chưa gặp sự cố với '__autoload'. Tài liệu mô tả nó như là cơ hội cuối cùng, không phải mương cuối cùng. Tôi không nghĩ đó là một điều xấu. – Nate

1

Trừ khi làm việc trên một dự án hiện hay nền tảng, tôi có xu hướng nghiêng về một tập tài liệu của công ước, chẳng hạn như Zend của: http://framework.zend.com/manual/en/coding-standard.naming-conventions.html

Plus này có nghĩa là bạn có thể sử dụng các công cụ như PHP Mã Sniffer để đảm bảo tất cả mọi người dính vào quy ước.

Dù bằng cách nào, nhất quán là tên của trò chơi.Nó làm cho nó dễ dàng hơn nhiều cho những người khác (bao gồm cả những tháng của mình từ bây giờ) để có được tốc độ trên một cơ sở mã.

Các vấn đề liên quan