Moin zusammen!
Da mir das Forum sympathisch ist, hab ich mich direkt mal angemeldet um meine Frage loszuwerden.
Ich programmiere noch nicht so lange in php, habe aber während des Studiums Java gelernt und mir selber objective-c ein wenig beigebracht.
Vor einem halben Jahr habe ich ein Projekt angefangen, welches mit der Zeit sehr unübersichtlich geworden ist. Es besteht eigentlich aus zwei Teilen, einer iOS Applikation und einer Webseite. Hier dreht es sich natürlich nur um die Website.
Zu Beginn war es noch relativ einfach, da brauchte es drei Dateien mit einer Klasse. Jetzt ist es aber so, dass die eine Klasse die tausend Zeilen sprengt und das scheint mir nicht besonders toll gelöst zu sein. Vermutlich ist es nicht die beste Idee es im Nachhinein zu machen, aber ich seh da grad keine andere Möglichkeit.
Wie teile ich am besten meine Klassen auf?
Habe mir Gedanken gemacht welche Funktionen in welche Klasse soll. Das ergibt bei mir 4 Klassen:
Pro Datei eine Klasse, so weit komme ich noch. Jetzt kommt aber ein wenig mein Unwissen ins Spiel.
Jede der Klassen braucht die Funktionen aus der Datenbankklasse und teilweise auch was aus den anderen. Ist dann schon die Strukturierung / Aufteilung der Klassen falsch? Wie ist das realisierbar? Ich kann doch nicht doppelt / dreifach eine Datei includen ohne das was schief geht?
Habe Gestern versucht mich ein wenig mit __autoloader() bzw. spl_autload_register() zu beschäftigen, bin aber auch nicht 100% schlau draus geworden.
Vielleicht kann noch ein kleines Beispiel helfen:
Die Klasse orders hat eine Funktion addOrder() die eine Bestellung in die Datenbank schreibt, welche aber mit einem bestimmten User verknüpft ist.
addOrder() macht also folgendes:
Alles anzeigen
Oder ist es vollkommener Quatsch mit Klassen und Objekten zu arbeiten? Man könnte ja auch immer alle Dateien mit den Funktionen einzeln includen und diese stehen dann zur Verfügung?
Hoffe meine Fragen sind deutlich geworden,
Gruß emmi
Da mir das Forum sympathisch ist, hab ich mich direkt mal angemeldet um meine Frage loszuwerden.
Ich programmiere noch nicht so lange in php, habe aber während des Studiums Java gelernt und mir selber objective-c ein wenig beigebracht.
Vor einem halben Jahr habe ich ein Projekt angefangen, welches mit der Zeit sehr unübersichtlich geworden ist. Es besteht eigentlich aus zwei Teilen, einer iOS Applikation und einer Webseite. Hier dreht es sich natürlich nur um die Website.
Zu Beginn war es noch relativ einfach, da brauchte es drei Dateien mit einer Klasse. Jetzt ist es aber so, dass die eine Klasse die tausend Zeilen sprengt und das scheint mir nicht besonders toll gelöst zu sein. Vermutlich ist es nicht die beste Idee es im Nachhinein zu machen, aber ich seh da grad keine andere Möglichkeit.
Wie teile ich am besten meine Klassen auf?
Habe mir Gedanken gemacht welche Funktionen in welche Klasse soll. Das ergibt bei mir 4 Klassen:
- users.class.php
- orders.class.php
- pharmacy.class.php
- db.class.php
Pro Datei eine Klasse, so weit komme ich noch. Jetzt kommt aber ein wenig mein Unwissen ins Spiel.
Jede der Klassen braucht die Funktionen aus der Datenbankklasse und teilweise auch was aus den anderen. Ist dann schon die Strukturierung / Aufteilung der Klassen falsch? Wie ist das realisierbar? Ich kann doch nicht doppelt / dreifach eine Datei includen ohne das was schief geht?
Habe Gestern versucht mich ein wenig mit __autoloader() bzw. spl_autload_register() zu beschäftigen, bin aber auch nicht 100% schlau draus geworden.
Vielleicht kann noch ein kleines Beispiel helfen:
Die Klasse orders hat eine Funktion addOrder() die eine Bestellung in die Datenbank schreibt, welche aber mit einem bestimmten User verknüpft ist.
addOrder() macht also folgendes:
Quellcode
- <?php
- // php-pseudo-mischcode
- class orders {
- addOrder($image, $data, $userid, $pharmaid) {
- $user = new users($userid);
- $db = new db();
- $username = $user->getUsername();
- $query = "INSERT INTO orders (image, data, username, pharmaid) VALUES ($image, $data, $username, $pharmaid)";
- $db->query($query);
- }
- }
Oder ist es vollkommener Quatsch mit Klassen und Objekten zu arbeiten? Man könnte ja auch immer alle Dateien mit den Funktionen einzeln includen und diese stehen dann zur Verfügung?
Hoffe meine Fragen sind deutlich geworden,
Gruß emmi