2009-07-30 11 views

Antwort

38

Es gibt keinen Unterschied mehr als das, was Sie sehen. Die mit .class sind hilfreich, wenn Sie autoloading verwenden und kein spezifisches Verzeichnis haben, in dem Ihre Klassendateien gespeichert sind. Ansonsten ist es völlig willkürlich. (Ich benutzte ClassName.class.php.)

+0

danke ein Triller ... das ist, was ich sah – johnnietheblack

+3

Ich zweite, dass ... ClassName.class.php. –

5

Ich bevorzuge MyClass.php - die exakt gleichen Namen (einschließlich Großbuchstaben) wie die Klasse.

Wenn Sie jedoch an einem vorhandenen Projekt arbeiten, sollten Sie das Benennungsschema des Projekts verwenden.

39

Was sind Ihre Kodierungsstandards?

Es ist üblich, Klassennamen mit einem Großbuchstaben zu beginnen (zum Beispiel: class MyClass). Wenn Sie dies tun, dann folgt, dass Sie die Datei benennen würden. Und MyClass.class.php funktioniert auch.

MyClass.class ist eine schlechte Idee, die jemand Ihren Quellcode anzeigen lassen könnte, wenn sie diese Datei namentlich anfordern. Die Verwendung der Erweiterung .php stellt sicher, dass der Benutzer die Ausgabe erst sehen kann, nachdem die Datei vom PHP-Interpreter verarbeitet wurde, der - für eine Datei, die nichts als eine Klasse enthält - eine leere Seite ist.

Schließlich in autoload(), die Sie die Mühe des Aufrufs require_once aufrufen, um Ihre Klasse zu laden.


Update: Mit PHP Standard PSR-4 Codierung, gibt es jetzt eine semi-offizielle Möglichkeit, Ihre Klassendateien zu nennen. Der vorherige Hinweis - Ihre Klassendatei wie die Klasse mit der Erweiterung .php zu benennen - steht immer noch. Jetzt wird jedoch erwartet, dass Sie diese Klassendatei in einem Unterverzeichnis platzieren, das nach dem Klassennamespace benannt ist. PSR-4 erfordert, dass alle Ihre Klassen in einem von Ihnen definierten Namensraum enthalten sind.

Was bekommen Sie dafür? Autoloading kostenlos! Wenn Sie Composer verwenden, können Sie specify the top-level directory for your classes und Composer wird sie automatisch laden. Keine weiteren require Anweisungen zum Laden Ihrer Klassen. Wenn Sie dies nicht tun möchten, müssen Sie nicht: PSR-4 ist eine Empfehlung, keine Anforderung.

+0

Nate, ich habe vom Autoload gehört ... ist das stabil? Das php.net nennt es im Grunde eine letzte Anstrengung? – johnnietheblack

+2

Plus eins für das Sicherheitsproblem, das mit MyClass.class – benlumley

+0

ausgelöst wird Ich hatte keine Probleme mit '__autoload'. Der Doc beschreibt es als letzte Chance, nicht als letzter Abgrund. Ich denke nicht, dass das eine schlechte Sache ist. – Nate

1

Es sei denn, auf ein vorhandenes Projekt oder eine Plattform arbeiten, neige ich zu einem dokumentierten Reihe von Konventionen zu lehnen, wie Zend: http://framework.zend.com/manual/en/coding-standard.naming-conventions.html

Plus dieses bedeutet, dass Sie Tools wie PHP-Code Sniffer verwenden können, um sicherzustellen, jeder bei den Sch'tis Konvention.

Wie auch immer, Konsistenz ist der Name des Spiels.Es macht es anderen (einschließlich sich selbst in den nächsten Monaten) sehr viel leichter, sich mit einer Code-Basis vertraut zu machen.

Verwandte Themen