Moin,
es läuft auf Dependency Injection hinaus, weil die ConfigInstanz ja bereits vorhanden sein muß bevor Deine eigene FrameworkInstanz erstellt wird. Also wirst Du die Configinstanz in den Konstruktor zur Frameworkinstanz übergeben.
Wenn das Configobjekt jedoch eine Instanz der Klasse Config ist, darf sie auch eigene Methoden haben, womit sich statische Methoden (Klassenmethoden der Config Klasse) erübrigen.
Kompliziert wirds nämlich, wenn es mehrere Möglichkeiten zur Speicherung der Konfiguration gibt, also bspw. verschiedene Dateiformate (ini, xml, json, andere) oder die Konfiguration befindet sich in einer Datenbank. Und genau hier liegt die Begründung für den Verzicht auf statische Methoden. Ergo muss eine Instanz erstellt werden und zwar so, daß diese Instanz beim Aufruf $cfg->write();
als eine eigene Methode die Änderungen auch dahin zurückschreibt wo die CFG-Daten ursprünglich hergekommen sind und auch im selben Format versteht sich.
Schönen Sonntag.