Ahoi,
»» database Klasse:
»» Hier wird nur eine Datenbankverbindung hergestellt als Singleton P..
Bei Zend gibt es für einen Db_Adapter eine factory. Singleton ist der Frontcontroller.
»»
»» database.ext. Klasse:
»» Hier sind sämtliche anderen Datenbankfunktionen drin.
Die bringt wohl der Adapter mit, wie auch die PDOs.
Was sind ihre Aufgaben? Vielleicht können sie ja als Methoden der database-Klasse realisiert werden.
»» Die Klasse wird in die Main Klasse als Parameter übergeben.
Für erweiterte Funktionalität wird bei Zend der Db_Adapter an Db_Table übergeben, eine Klasse, als TableDataGateway fungiert.
Wenn MainKlasse ein Singleton ist, hieße das, dass mit jedem MainKlasse::getInstance() das ext-Objekt als Parameter übergeben werden muss. Dann kann die MainKlasse sich ein ext-Objekt auch selbst besorgen.
Wäre die Main-Klasse der Frontcontroller, würde dieser den Request an einen ActionController routen und der würde dann eine Model-Objekt instantiieren, welches (ggf. via Table-Data-Gateway) auf den Db_Adapter zugreift.
Dank und Gruß,