2009-07-30 15 views

Odpowiedz

38

Nie ma żadnej różnicy poza tym, co widzisz. Te z numerem .class są przydatne, jeśli używasz autoloading i nie masz określonego katalogu, w którym znajdują się pliki klas. W przeciwnym razie jest to całkowicie arbitralne. (Kiedyś używałam ClassName.class.php.)

+0

dzięki trylowi ... to było to, na co czekałem – johnnietheblack

+3

Po drugie ... Nazwa klasy.class.php. –

5

Preferuję MyClass.php - dokładnie to samo imię (w tym wielkie litery) jako klasa.

Jeśli jednak pracujesz nad istniejącym projektem, powinieneś użyć dowolnego schematu nazewnictwa, który ma projekt.

39

Jakie są twoje standardy kodowania?

Często zaczyna się nazwy klas wielką literą (na przykład: class MyClass). Jeśli to zrobisz, oznacza to, że nazwałbyś plik MyClass.php. I działa też MyClass.class.php.

MyClass.class to zły pomysł, który może pozwolić komuś wyświetlić kod źródłowy, jeśli zażąda tego pliku po nazwie. Użycie rozszerzenia .php zapewnia, że ​​użytkownik zobaczy wyjście tylko po przetworzeniu pliku przez interpreter PHP, który - dla pliku zawierającego tylko klasę - jest pustą stroną.

Wreszcie, spójrz na autoload(), dzięki czemu nie musisz dzwonić pod numer require_once, aby załadować swoją klasę.


Aktualizacja: z PHP kodowanie standardowe PSR-4, nie ma teraz pół-oficjalny sposób, aby wymienić swoje pliki klasowe. Poprzednia porada - aby nazwa pliku klasy była taka sama jak klasa z rozszerzeniem .php - nadal. Ale teraz oczekuje się, że umieścisz ten plik klasy w podkatalogu nazwanym według przestrzeni nazw twojej klasy; PSR-4 wymaga, aby wszystkie twoje klasy były zawarte w przestrzeni nazw zdefiniowanej przez ciebie.

Co otrzymujesz za to? Automatyczne ładowanie za darmo! Jeśli używasz Composer, możesz specify the top-level directory for your classes, a Composer automatycznie je zapisze. Koniec z require instrukcjami, aby załadować swoje klasy.

Jeśli nie chcesz tego robić, nie musisz: PSR-4 to zalecenie , nie jest to wymagane.

+0

Nate, słyszałem o autoloadzie ... czy to stabilne? php.net zasadniczo nazywa to ostatnim wysiłkiem przykopu? – johnnietheblack

+2

Plus za problem z bezpieczeństwem zgłaszany przez MyClass.class – benlumley

+0

Nie miałem problemów z '__autoload'. Doktor opisuje to jako ostatnią szansę, a nie ostatni rów. Nie sądzę, że to zła rzecz. – Nate

1

ile działa na istniejącym projekcie lub platformie, ja zazwyczaj skłaniają się ku udokumentowanym zbiorem konwencji, takich jak Zend użytkownika: http://framework.zend.com/manual/en/coding-standard.naming-conventions.html

Plus to oznacza, że ​​można użyć narzędzi, takich jak PHP Code Sniffer, aby zapewnić każdy trzyma się Konwencja.

Tak czy inaczej, Spójność to nazwa gry.Ułatwia to innym (w tym także sobie miesiące od teraz) uzyskanie szybkiego wzrostu na podstawie kodu.

Powiązane problemy