Warum ist Unterstrich in den PSR-0-Standard in den Verzeichnisabscheider umgewandelt?

StackOverflow https://stackoverflow.com//questions/11696219

  •  12-12-2019
  •  | 
  •  

Frage

Der PSR-0 ( https://github.com/php-fig/fig-standards/blob/master/akzeption/psr-0.md ) Standard Gibt an, dass ein Unterstrich im Klassennamen in einem Verzeichnisabscheider in der entsprechenden Datei umgewandelt werden sollteName.

an mich scheint nicht eine gute Idee zu sein, da es viele Fehler erzeugt, wenn jemand, der den Standard nicht unschuldig ist, einen Unschuldigen einen Unterstrich im Klassennamen verwendet, und plötzlich kann der Autoloader nicht die Klasse und alle seltsamen Fehler findenerscheint (siehe dieses StackoverFlow-Problem z.a>)

Ich denke, es muss eine Art Vernunft geben (historische Kompatibilität mit einiger Bibliothek?) Für diese "Funktion".Meine Frage ist: Wissenswertes, warum dies in den PSR-0-Standard eingeführt wurde?

War es hilfreich?

Lösung

Unterstriche wurden in den Zeiten verwendet, in denen PHP noch keine Namespaces unterstützt.Ein "korrektes" organisiertes Projekt folgt dem Übereinkommen der Namespacing die Dateien genauso wie die Verzeichnisstruktur.

Es ist nur eine allgemeine "Regel", um Dateien in einem Projekt zu organisieren.

Wenn Sie also eine Verzeichnisstruktur haben:

generasacodicetagpre.

Menschen, die früher gemacht wurden:

generasacodicetagpre.

Aber jetzt, da wir mit Namespaces haben, wird es:

generasacodicetagpre.

Es ist nur eine Kodierung der Stilrichtlinie, die sicherstellt, dass alle das Gleiche tun.

also, was psr-0 tut, ist der alte und der neue Art von Namespacing zu einem Dateinamen.

Andere Tipps

pHP unterstützt Namespaces seit Version 5.3, früher wurde das häufigste Übereinkommen darin, Unterstrom als Namensspace (Verzeichnis) Separator, z. B. generationstabelletagcode, zu verwenden, wurde als generationstabeticetagcode abgebildet.Ich glaube, dass die Rückwärtskompatibilität der Hauptgrund ist.

Beachten Sie, dass der PSR-0-Standard für einige spezifische Projekte geschrieben wurde und nicht unbedingt die beste Option für Ihr eigenes Projekt.Wie es auf ihrer Website sagt: "Wenn andere Leute annehmen wollen, was wir tun, sind sie willkommen, aber das ist nicht das Ziel."PSR-0 ist sehr restriktiv, ich würde es nicht entscheiden, es zu benutzen, nur weil andere Leute sind.Überlegen Sie, was Sie eigentlich von Ihrem Projekt wünschen und ob es für Sie von Vorteil ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top