Mailinglisten-Archive |
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