L
Lunatic
Hallo liebe tutorials.de Community,
eine Sache vorweg, ich habe bereits gegoogled aber keine zufriedenstellende Lösung gefunden.
Es geht um folgendes:
Ich habe eine User Klasse. Die hält verschiedene Methoden bereit, z.B. selectUser($id), getUserData($key) etc...
u.a habe ich allerdings auch noch eine MySQL Klasse für Dinge die eine MySQL Klasse eben braucht. Queries, Fetching etc...
In der index.php lade ich erstmal die benötigten Klassen und instanziere sie dann:
Soa, dass wäre das Debakel. Die selectUser Methode ruft eine Methode der mySQL Klasse auf. Die Instanz der MySQL Klasse ist in der User Klasse allerdings nicht gültig weshalb ich die "call to a member function" Fehlermeldung erhalte.
Denkbare Möglichkeiten wären nun eben entweder die MySQL Klasse als Referenz zu übergeben, in jede Methode der Userklasse ein global $mysql; zu bomben oder die MySQL Klasse statisch zu machen. Darüber hinaus könnte ich die MySQL Klasse statisch machen. Allerdings misfallen mir aber alle o.g. Möglichkeiten und von ein paaren habe ich auch schon mitgekriegt, sie seien unsauber.
Meine Frage wäre nun, wie sähe denn eine saubere Möglichkeit aus die MySQL Klasse in der User- und ggf. noch anderen Klassen verfügbar zu machen?
Ich danke schonmal im Voraus,
Lunatic
eine Sache vorweg, ich habe bereits gegoogled aber keine zufriedenstellende Lösung gefunden.
Es geht um folgendes:
Ich habe eine User Klasse. Die hält verschiedene Methoden bereit, z.B. selectUser($id), getUserData($key) etc...
u.a habe ich allerdings auch noch eine MySQL Klasse für Dinge die eine MySQL Klasse eben braucht. Queries, Fetching etc...
In der index.php lade ich erstmal die benötigten Klassen und instanziere sie dann:
PHP:
$mysql = new MySQL('localhost', 'user', 'pass', 'db');
$core = new Core();
$user = new User();
echo $user->selectUser(1);
Soa, dass wäre das Debakel. Die selectUser Methode ruft eine Methode der mySQL Klasse auf. Die Instanz der MySQL Klasse ist in der User Klasse allerdings nicht gültig weshalb ich die "call to a member function" Fehlermeldung erhalte.
Denkbare Möglichkeiten wären nun eben entweder die MySQL Klasse als Referenz zu übergeben, in jede Methode der Userklasse ein global $mysql; zu bomben oder die MySQL Klasse statisch zu machen. Darüber hinaus könnte ich die MySQL Klasse statisch machen. Allerdings misfallen mir aber alle o.g. Möglichkeiten und von ein paaren habe ich auch schon mitgekriegt, sie seien unsauber.
Meine Frage wäre nun, wie sähe denn eine saubere Möglichkeit aus die MySQL Klasse in der User- und ggf. noch anderen Klassen verfügbar zu machen?
Ich danke schonmal im Voraus,
Lunatic