Sven Rautenberg: PHP Variablen übergabe in welcher Form sinnvoll?

Beitrag lesen

Moin!

aaah, ok. Besten Dank.

Nebenbei: Eine $varible an oberster Code-Ebene, wenn ichs richtig verstanden habe, ist Global. Komstanten muss man doch mit define( 'VARIABLE', 'http://...' ); angeben damit sie überall verfügbar sind, oder?

Ja, und beides will man vermeiden, weil man seinen Code unabhängig vom Vorhandensein globaler Effekte/Werte konstruieren will.

Dein Code sollte sich nicht darauf verlassen, dass irgendeine globale Konstante definiert ist oder eine globale Variable existiert und einen bestimmten nutzbaren Wert hat. Denn es gibt nur zwei Szenarien:

  1. Entweder ist dein Code auch als einziger verantwortlich für das Erstellen der Variablen oder Konstante. Dann kann man sie ganz simpel als Klassenkonstante oder private Property in die Klasse/Instanz ziehen. Das reduziert die Abhängigkeit von externen Zuständen und erleichtert das Testen.
  2. Oder externer Code stellt die Konstenten oder Variablen her. Dann hast du mindestens ein nicht offensichtliches Reihenfolgeproblem, d.h. irgendwer muss wissen, in welcher Reihenfolge Code auszuführen ist. Man kann ihn nicht mehr beliebig umstrukturieren, die Wartbarkeit leidet, ebenso die Testbarkeit.

Mit anderen Worten: Es ist zwar nicht das Ende der Welt, wird aber langfristig mit Sicherheit weh tun.

Grüße Sven