Ich baue grade an einem neuen Projekt wo ich dieses mal alles selbst erstellen möchte. Damit ich von Anfang an keine Fehler mache bzw. mir nicht unnötig mehr Arbeit mache habe ich mir überlegt ich baue mir eine Klasse als Basis und instanziere darin alle anderen Klassen.
Ich habe also als Beispiel die Klasse "Projekt" als Basis. Darin instanziere ich nun die Klassen "class_db", "class_image", "class_mail" damit ich alle Funktionen aus allen Klassen immer und überall nutzen kann ohne irgendwelche Klassen laden zu müssen. Ich include also immer nur meine Basisklasse und hab sofort alles da.
Irgendwie hab ich da nur jetzt entweder einen Denkfehler bei der Instanzierung der Klassen oder aber ich wende das ganze einfach falsch an.
In meiner class_db z.B. habe ich die Funktionen zum Verbindungsaufbau zur DB sowie ganz einfache Funktionen für query's. Dann in meiner class_mail habe ich eine Funktion zum Verifizieren von Mailadressen sowie eine Mailfunktion die Emails zum einen versendet und gleichzeitig in einer DB speichern soll. Hier ist nun der erste Knackpunkt.
Meine Funktion für query's sieht folgendermaßen aus.
|
PHP Source code
|
1
2
3
4
|
function query($sql) {
$result = mysql_query($sql, $this->dbhandle) or die ("Query ungültig!".mysql_error());
return $result;
}
|
Diese Funktion nutze ich nun in meiner class_mail wie gesagt in meiner Mailfunktion. In meinem im Browser aufgerufenen Skript gibt es also jetzt irgendwo einen Aufruf der die Mailfunktion auslöst und dabei geht dann irgendwas schief. Ich bekomme keine Fehlermeldung aber die Mail wird nicht in die DB geschrieben. Kann das sein das ich die Klasse für die DB zuerst instanzieren muss um die Funktionen darin in einer anderen Klasse die instanziert wird nutzen zu können? Oder muss ich dem beim Aufruf der Mailfunktion irgendwie mitgeben welche Klassen der benutzen soll oder sowas?
Oder hat jemand einen Vorschlag wie man sowas wesentlich leichter machen kann? Oder anders gesagt gibt es die Möglichkeit die Klassen wie ich das vor habe zu verschachteln ohne auf die Reihenfolge achten zu müssen?