Frage

Was halten Sie (insbesondere PHP) denken Jungs über eine Namenskonvention für Klassen, in denen der Klassenname den Pfad zur Datei in das Projektverzeichnis, bezogen reflektiert? z:

# /project/Session/Abstract.php
# /project/Session/Database.php

class Session_Database extends Session_Abstract ...

Ich bin sicher, Sie bekommen die Idee. Ich bin auch sicher, dass einige der Profis offensichtlich sind .. aber was denken Sie - ist es das wert Klassennamen, um zu verlängern ziemlich nett Verzeichnisstruktur zu erhalten, die leicht zu navigieren ist

Auf diese Weise kann auch für einen Einzeiler __autoload ($ class) Definition in PHP: str_replace ( '_', '/', $ class);

Ich nehme an einige Leute solche Konvention, dumm sein betrachten. Ich mag es persönlich, aber ich habe es nicht von anderen Personen im Einsatz gesehen, und ich bin mir nicht ganz sicher, ob es in der Praxis so gut funktionieren wird.

Einer der Nachteile könnte, dass sein mit der Entfernung von include / erfordern Anrufe, alle Klassen abhängig sind (zusammengeklebt) auf der Autoload-Funktion, die einige argumentieren könnte, nicht mit ihrem Verständnis der losen Kopplung entsprechen.

Der einzige Hinweis, der bisher über eine solche Annäherung an mir bekannt ist, ist http: // Softwareengineering .vazexqi.com / files / pattern.html

Also, Sie auf diesem eine Meinung haben?

War es hilfreich?

Lösung

Dann haben Sie nicht gesucht. PEAR diesen Ansatz verwendet. Das Gleiche gilt für Zend Framework . Es ist ein eher etablierter Standard in der PHP-Welt. Ich weiß nicht, wenn ich es zuerst begegnet, aber ich habe es persönlich und mag es seit mehreren Jahren, die beide im Rahmen meines eigenen Rahmen und im Rahmen von öffentlich zugänglichen Frameworks wie ZF.

Andere Tipps

Die einzige wirkliche Sache, die ich darüber nicht mag, ist, dass, wenn ich Code, um sich zu bewegen, ich Nacharbeiten viele Namen erhalten. Allerdings hat Emil bereits darauf hingewiesen, dass dies für den Kurs ziemlich par ist, aber ich mag die PHP Userland Naming Rules .

Ich verwende diese Konvention als gut.

Nicht nur, dass es helfen, eine ziemlich Dateistruktur hat, hilft es auch mit Namespacing Fragen. Das Namenskonvention hilft Klassen prefixing doppelte Klassennamen zu vermeiden.

Wenn PHP 5.3 herauskommt und schließlich hat Namespaces, werde ich immer noch diese Konvention wird. Das einzige, was ich anders machen würde, ist meine Klassennamen verkürzen, meine Präfixe in der richtigen Namensraum umwandeln und Einstellung in meinem Autoloader tun.

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