Hallo Sven,
du hast leider komplett Recht. Ich werde wahrscheinlich alle Klassen voneinander trennen und die Variablen/Abhängigkeiten, die benötigt werden in die Funktionen eines Objektes einfügen in denen sie auch gebraucht werden.
Die von dedlfix vorgestellte Methode alle Abhängigkeiten per Referenz über den Konstruktor reinzuladen ist die beste und 'sauberste' Methode.
Meine Architektur sieht wie folgt aus
DB(Datenbank-Anbindung)
TIME(Zeit & Zeitzone)
OUTPUT(Template)
SESSION(Sitzungsdaten, Forenfeatures bzgl einer Sitzung)
FORUM(Themen, Beiträge, Umfragen ...)
RIGHTS(Rechte zu allen Foreninstanzen und Mitgliedern- und gruppen)
und alle Abhängigkeiten per $objekt->function( $var1[, $var2 ...] ) inkludieren.
$cfg als Variable und $db als Datenbank kann man gut per Konstruktor reinladen, aber das Andere scheint mir unspezifisch.