phpbar.de logo

Mailinglisten-Archive

[php] Namensgebung - Geschmackssache

[php] Namensgebung - Geschmackssache

Yannik Hampe yannik at cipher-code.de
Don Feb 14 19:24:28 CET 2008



Michael Borchers wrote:
> Ich bin auf der Suche nach einem Namen für ein Systemeigenes superglobals Array, von der Bedeutung her wie $GLOBALS. Welche Namen wählt ihr für ähnliche Zwecke?
> 
> Z.B. benutzt Phorum den Namen $PHORUM mit z.B. $PHORUM['data'] usw.
> 
> Ich möchte aber keinen Systemspezifischen Namen haben.
> 
> Hier ein paar Favoriten und Ideen:
> 
> $SYS;
> $COMMON;
> $APP;
> $ENV;
> $PHP;
> $NET;
> $OS;
> $APL;
> 
> $_GLOBALS;
> $_DATA;
> $SRC;
> 
> What do you think?

Ich thinke, dass dieses Konzept generell nicht so prima ist, da deine 
Variable (ausversehen) überschrieben werden kann, ohne dass du es 
merkst. Vielleicht weil du oder ein anderer Entwickler an deinem System 
sich gedacht hat, dass er eine Variable mit diesem Name ja gerade mal 
benutzen möchte und nicht daran denkt, dass diese bereits existiert.

Besser ist es eine rein statische Klasse zu definieren:
class Config
{
   public static get($name)
   {
     return 'whatever';
   }
}

Und dann deine Werte immer per
Config::get('varname')
abzurufen.
Das tolle ist: Wenn jetzt irgendwer mein, er müsste auch eine 
Config-Klasse definieren, dann kommt sofort eine Fehlermeldung, du 
weisst genau wo der Fehler ist und wunderst dich nicht erst stundenlang 
wo diese komischen Effekte herkommen. Und dann kannst du deine Klasse 
umbennen oder einen Namespace vergeben und dein Problem ist gelöst.

Das Singletonprinzip auf sowas anzuwenden halte ich für overkill, da dem 
Programm überahupt keinen Vorteil dadurch zukommt. Klar, man kann 
arrayAccess implementieren, aber das macht die Sache nicht einfacher, 
denn man muss ja sowieso immer eine Funktion (getInstance) aufrufen dann 
dann noch zusätzlich arrayAccess anwenden, was in einem Schritt nicht 
möglich ist, wodurch man in jedem Fall erstmal eine Zwischenvariable 
braucht und... also die Lösung da oben ist simpler und effizienter :-).

Yannik

php::bar PHP Wiki   -   Listenarchive