Ich habe ähnliche Situation vorliegen:
class Site{
var $Exception = array();
public function __construct(){
$db = new DB();
}
}
class DB{
//so sieht der exception handler aus
//wenn einer fehler auftritt, wird die Exception an die Seite übergeben
private function ExceptionHandler($e){
Global $Site;
$Site->Exception[] = $e;
}
}
// instantiierung einer Seite
$Site = new Site();
Einen solchen ExceptionHandler() habe ich in vielen Klassen eingebaut und normalerweise klappt das mit dem Global und dem Anhängen der Exception an den Array. Nur nicht, wenn es im Konstruktor der Site geschieht. Logisch: denn dann ist das Objekt $Site noch nicht vorhanden.
Wie kann ich das lösen. Vielleicht ist der Ansatz schlecht mit dem Global aber ich möchte alle Exception an die Seite delegieren.
Könnt ihr mir helfen. Ich programmiere noch nicht lange OO.