Matti Mäkitalo: Wartbarer Code und Teamarbeit

Beitrag lesen

Hi,

Nun, der '::' hat jedoch in PHP eine andere Bedeutung, ergo brauchen wir da ein anderes Zeichen, z.B. den Unterstrich (class CMS_User extends CMS, Datei: CMS/User.php).

Meinst du nicht, dass das hier ein perfektes Beispiel für Namespaces ist?

Mir gings gestern um die Abbildung einer Klassenhierarchie im Dateisystem. Es gibt dafürsprechend gute Gründe [...]

Und es gibt bei PHP eine Standardempfehlung (PSR), die genau die Abbildung der Klassenhierarchie auf das Dateisystem beschreibt: PSR-0 bzw. dessen Successor PSR-4. PSR-0 erlaubt noch den Unterstrich als Verzeichnisseparator (weil PSR-0 auch PHP<5.3 erfasst). PSR-4 erlaubt nur noch "richtige" Namespaces, und da wird in PHP eben mit dem Backslash () getrennt.

Also: die Klasse CMS\User gehört in die Datei CMS/User.php (eher src/CMS/User.php).

Der Vorteil von PSR-4 liegt darin, dass es einen Standard-Autoloader gibt, der die Klassen dann auch sofort findet ohne require-Hölle. Weiterhin gibt es dann auf packagist.org tausende Pakete, die sich ebenfalls an diesen Standard halten. Ich kann nur stärkstens empfehlen, dies ebenfalls zu tun.

Bis die Tage,
Matti