Welche Namenskonventionen verwenden Sie für PHP-Klassen? [geschlossen]


8

Ich benutze ClassNamesund memberNamesals Konvention sehr gerne , bin mir aber nicht sicher, wie ich die Datei mit einer Klasse benennen würde.

Ich mag es, meine Klassen in einer Datei mit genau demselben Namen wie die Klasse zu definieren. Aber ich mache auch gerne PHP-Dateien in Kleinbuchstaben. Also bin ich in Konflikt geraten.

Wenn ich eine Klasse genannt haben ProductGroupsoll, dass definiert werden ProductGroup.php, productgroup.phpoder product_group.php?

Ich weiß, dass es keine richtige Antwort gibt, also suche ich nach dem, was am häufigsten vorkommt oder nach Ihrer Meinung, welche ich verwenden soll. Welche verwenden Sie?

Antworten:


6

Bei der Arbeit verwenden wir Unterstriche als Ordnerbegrenzer und benennen die Dateien genauso wie den Pfad. Der Autoloader ist sehr einfach, er muss nur _ durch / ersetzen und am Ende '.php' hinzufügen. ProjectName_Models_ProductGroup () befindet sich immer in ProjectName / Models / ProductGroup.php. Es kann zu einigen sehr langen Klassennamen führen, aber bei einer IDE spielt es keine Rolle.

Sie können dieselbe Konvention verwenden, aber nur strtolower () ausführen, bevor Sie die Datei einfügen.


3
+1 Dies ist die Konvention von Zend Framework und scheint breite Akzeptanz zu finden.
Bogeymin

Meinen Sie damit, dass Sie die Klasse genauso benennen wie den Dateipfad?
Systemovich

@Geoffery, Ja, es ist genau das gleiche, außer dass Schrägstriche durch Unterstriche ersetzt werden. Alle unsere Server laufen unter Linux, daher ist die Großschreibung wichtig und ein sehr einfacher Autoloader.
Asa Ayers

1

Normalerweise füge ich eine 'ProductGroup'-Klasse in eine Datei mit dem Namen' ProductGroupClass.php 'ein, die normalerweise in einer' Klassen'-Verzeichnisstruktur gespeichert ist.


11
Ich denke das ist übertrieben. Das Anhängen einer Klasse an eine Datei in einem Verzeichnis namens classes scheint zu redundant
Matt Ellen

1

Ich versuche, meine Dateien genauso zu benennen wie den Klassennamen, jedoch in Kleinbuchstaben. Dies hilft auch bei autoloadFunktionen.


1

Ich verwende eine modifizierte Version der PEAR-Codierungsstandards . Wie bereits erwähnt, hilft es beim automatischen Laden, und ich finde, es sieht ein wenig sauberer und leichter zu lesen, IMO. Grundsätzlich kommt es darauf an, einfach zu entscheiden, was für Sie funktioniert, und sich daran zu halten. Solange der gesamte Code gleich aussieht, wird der Rest am Ende an seinen Platz fallen.


0

Ich habe Klassendateien, die Anwendungen umfassen ("Bibliotheken"), und Klassendateien, die für Anwendungen spezifisch sind. Die Bibliotheken erhalten ein Präfix, um das Risiko von Konflikten mit Code von Drittanbietern zu minimieren, z. Bei "My Sweet Company" verwenden wir möglicherweise den Klassennamen "MSCPerson" anstelle von "Person".

Wir verwenden CamelCaseKlassennamen und Klassendateien werden benannt CamelCase.class.php. Die meisten Klassendateien haben die einzelne Klasse und alle klassenspezifischen Ausnahmen, aber diese Regel ist nicht in Stein gemeißelt. Es ist schön, Single-Class-Dateien für die gfFunktion von vim zu haben.


0

Persönlich speichere ich eine Klasse mit dem Namen MyClassin einer Datei namens MyClass.class.phpin einem classesVerzeichnis.
Meine Autoload-Funktion ist dann so einfach wie

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

Es gibt keine Struktur innerhalb des classesVerzeichnisses, aber in meinen Projekten war dies nie ein Problem. Wenn Sie Unterverzeichnisse benötigen, ist die von Asa Ayers vorgeschlagene Methode sehr praktisch und einfach zu implementieren.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.