dedlfix: Wie am besten Konfigurationsparameter Übergeben?

Beitrag lesen

Tach!

Das bedeutet […], dass man die Konfigurationswerte nicht holen kann, weil man dafür einen globalen Namen kennen muss. Was bleibt übrig? Das Übergeben. Und das sollte man auch mit allen anderen Werten machen. Nicht holen (Don't look for things) sondern entgegennehmen und übergeben.

Eine Verständnisfrage: Wie übergebe ich einem Skript Konfigurationswerte, ohne dazu ein Skript, das selbst diese Werte irgendwoher holt (was ja vermieden werden soll), zu benutzen?

Das "in einem Script" ist eigenartig formuliert. Man befindet sich doch bei PHP die ganze Zeit "in einem Script". Was genau ist denn dein Anliegen?

In meiner Überlegung ging ich davon aus, dass du (zum Beispiel) eine Klasse hast, die etwas tun soll und dafür Konfigurationswerte braucht. Diese Klasse soll sie sich nicht holen, weil sie damit weniger universell wird und es auch nicht ihre Kernaufgabe ist. Die Klasse soll nur tun, was sie tun soll. Wenn sie dazu etwas braucht, ist es nicht ihre Aufgabe, das zu holen. Dafür gibt es Handlanger - sprich andere Klassen, die ihrerseits darauf spezialisiert sind, das spezielle Ding zu besorgen oder bereitzuhalten. Es gilt zu vermeiden, dass man sich eierlegende Wollmilchschwein-Klassen schreibt, die zwar alles können, dafür aber unhandlich groß geworden sind.

Also, irgendwer muss die Werte holen (aus einer Konfigurationsdatei) oder sonstwie kennen (im Code drinstehen haben). Wenn man ein Framework schreibt, schreibt man sich meist eine oder mehrere (vom selben Interface abgeleitete) Klassen, die darauf spezialisiert sind, sich die Daten irgendwoher zu holen. So kann man auch einen anderen Provider schreiben, der die Daten anderweitig beschafft. Die Klasse, die was tun soll, bekommt dann vom Provider bereitgestellten Daten übergeben. Welcher Provider zum Einsatz kommt, bestimmt der Aufrufer. Das Test-Script nimmt den Testdatenprovider und das Produktivscript den mit den Produktivdaten.

dedlfix.