Rolf B: eigenen pseudo Datentyp definieren

Beitrag lesen

Hallo pl,

du hast insofern Recht, dass die Reihenfolgeneutralität der Parameter eine gute Sache ist. Es gibt ja auch genug Libraries, die das nutzen und einen Konfigurationsbaum als Parameter erwarten. Und diese Libraries nutzen gerne - wie auch dein Beispiel - Merge-Mechanismen, um den übergebenen Baum mit einem Defaults-Baum zu mischen. Alles schick und flott.

Andererseits sehe ich das ohne passendes Tooling (wie es z.B. C# bei Objekt-Initializern bringt) zwiespältig… Eine Library wird zur Laufzeit eher nicht prüfen, ob der Objektbaum falsche Äste eingepfropft bekommen hat. Wie lange brauchst Du, um den folgenden Fehler zu sehen? Hier ist es einfach, in einem komplexeren Config-Baum nicht so.

$newCfg = [ 'user' => '',
            'pass' => '',
            'host' => 'localhost',
            'pont' => 3306,
            'base' => '',
          ];

Rolf

--
Dosen sind silbern