echo $begrüßung;
database Klasse:
Hier wird nur eine Datenbankverbindung hergestellt als Singleton P..database.ext. Klasse:
Hier sind sämtliche anderen Datenbankfunktionen drin.
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.
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.
Main Klasse:
Die MainKlasse wird wieder als Singleton P. gemacht
Was ist die Aufgabe der MainKlasse? Ohne zu wissen, was letztlich gelöst werden soll, ist ein konkretes Drübernachdenken nicht sehr sinnig.
In der index.php wird dann nur dein database Objekt erstellt und ein Main Objekt erstellt.
Das database-Objekt wird ja durch das Singleton Pattern in dem Moment erstellt, wenn der erste Zugriff darauf erfolgt. Ein anderweitiges Anlegen ist weder sinnvoll noch nötig und widerspricht auch dem Singleton Pattern, das verlangt, dass der Konstruktor nicht anderweitig aufgerufen werden darf, also private zu sein hat. Die einzige Möglichkeit an ein "gesingletontes" Objekt zu kommen ist der Aufruf der statischen getInstance-Methode (oder wie auch immer man sie nennt). Und jeder, der das Objekt braucht, holt es sich selbst durch Aufruf dieser Methode. Es muss also nicht noch irgendwo anders (global) abgelegt werden.
echo "$verabschiedung $name";