Moin!
Globale Konstanten sollte man trotzdem eher vermeiden.
Nana. Also $GLOBAL['config']['sonstwas'] nicht. Konstanten nicht ... wie will denn der Herr eine Konfiguration an seine Funktionen übergeben? Soll etwa jedes Objekt die Konfigurationsdatei lesen und was machst Du bei einem, sagen wir mal schlankem, funktionalen 100-Zeiler? Den mit Objekten auf 300 Zeilen aufblasen?
Punkt 1: Du meinst "prozedural", nicht "funktional". Bei funktionalen Programmiersprachen sind die Funktionsargumente Funktionen, ebenso wie die Funktionsergebnisse. Sowas schreibt man mit PHP eher nicht.
Punkt 2: Objektorientierter Code kriegt die individuellen Parameter für eine Instanz im Konstruktor übergeben. Es ist Aufgabe der Dependency Injection, die da rein zu tun. Das bedeutet, dass es beim Bootstrapping der Applikation eine Phase gibt, in der die Konfiguration eingelesen und passend aufbereitet wird, dabei ein DI-Container entsteht, und dann war es das mit Konfiguration.
Ja, das erzeugt mehr Codezeilen. Es erlaubt aber auch vernünftiges Testen und die Wiederverwendbarkeit des Codes.
Grüße Sven