Es kommt immer darauf an, das Wesentliche zu erkennen. Genau daran lasse ich mich auch hier im Forum leiten. Also es kommt darauf an zu erkennen wo das eigentliche Problem liegt. Und hier noch einmal ein trivialer Code:
function param($name = ''){
if(! isset($this->CGI) ){
require "CGI.php";
$this->CGI = new CGI();
}
return $this->CGI->param($name);
}
Welcher eine interessant Altenative zu Dependency Injection zeigt.
Das Problem in DI: Eingepflanzte Objekte sind außerhalb der Kapselung veränderbar, der Grund dafür ist, sie sind keine Kopien sondern Referenzen.
Og. trivialer Code löst diess Problem. Und zwar ohne daß die Objektstruktur geändert werden muss. Und natürlich kann man eine solche Methoden (Stichwort Factory) auch in Traits auslagern.
Du siehst also, hier fallen eine ganze Menge Fachbegriffe. Es kommt darauf an zu verstehen was sich dahinter verbirgt. Kein Astronom der Welt würde die Milchstraße für ein Molkereiprodukt halten (Danke Hoimar von Ditfurth)
MFG