Hallo,
ich nutze schon einige Zeit Klassen und Objekte, bin inzwischen aber unsicher, ob das, was ich da tue wirklich sinnvoll ist und keine Performanceprobleme zur Folge hat. Irgendwo in einem Tutorial habe ich gelesen, dass Klassen aus Eigenschaften bestehen und aus Methoden, die diese Eigenschaften manipulieren.
1. Wenn ich das so eng auslege, dann hat eine Methode zur Validierung eines Formulars in einer Klasse nichts zu suchen, weil diese ja keine Eigenschaften manipuliert. Genauso wenig hätte eine Methode zur Anzeige aller Kunden in einer Klasse kunde nichts zu suchen, weil diese ja auch keine Eigenschaften manipuliert. Richtig?
2. Wenn obige Aussage richtig ist, dann hole ich im Konstruktor der Klasse eine Tabellenzeile (z. B. aus einer Tabelle kunde) und schaufle die Felder in die Objektvariablen(Eigenschaften). Nun manipuliere ich die Werte (z.B. mit einer Methode ->setAdresse ($strasse, $plz, $ort) bzw. setKundenummer und schreibe danach die Werte mit einer Methode ->updateDB () zurück in die DB. Ist das so richtig verstanden? Für die Performance kann es ja nicht förderlich sein, wenn ich in setAdresse bzw. setKundenummer gleich einen Update auf die DB mache. Richtig?
3. Spricht etwas dagegen in einer Methode auf Superglobals wie $_GET ['strasse']zuzugreifen oder sollte man den Inhalt von $_GET zuerst in eine Klassenvariable mit $kunde->strasse = trim($_GET ['strasse']) übertragen und von dort dann in die DB schreiben?
4. Für die Performance sollte es doch förderlich sein, wenn man Klassen möglichst klein hält und besser mit vielen kleinen Klassen statt mit wenigen grossen arbeitet. Richtig?
Für einige kurze Tips wäre ich dankbar.
					ich nutze schon einige Zeit Klassen und Objekte, bin inzwischen aber unsicher, ob das, was ich da tue wirklich sinnvoll ist und keine Performanceprobleme zur Folge hat. Irgendwo in einem Tutorial habe ich gelesen, dass Klassen aus Eigenschaften bestehen und aus Methoden, die diese Eigenschaften manipulieren.
1. Wenn ich das so eng auslege, dann hat eine Methode zur Validierung eines Formulars in einer Klasse nichts zu suchen, weil diese ja keine Eigenschaften manipuliert. Genauso wenig hätte eine Methode zur Anzeige aller Kunden in einer Klasse kunde nichts zu suchen, weil diese ja auch keine Eigenschaften manipuliert. Richtig?
2. Wenn obige Aussage richtig ist, dann hole ich im Konstruktor der Klasse eine Tabellenzeile (z. B. aus einer Tabelle kunde) und schaufle die Felder in die Objektvariablen(Eigenschaften). Nun manipuliere ich die Werte (z.B. mit einer Methode ->setAdresse ($strasse, $plz, $ort) bzw. setKundenummer und schreibe danach die Werte mit einer Methode ->updateDB () zurück in die DB. Ist das so richtig verstanden? Für die Performance kann es ja nicht förderlich sein, wenn ich in setAdresse bzw. setKundenummer gleich einen Update auf die DB mache. Richtig?
3. Spricht etwas dagegen in einer Methode auf Superglobals wie $_GET ['strasse']zuzugreifen oder sollte man den Inhalt von $_GET zuerst in eine Klassenvariable mit $kunde->strasse = trim($_GET ['strasse']) übertragen und von dort dann in die DB schreiben?
4. Für die Performance sollte es doch förderlich sein, wenn man Klassen möglichst klein hält und besser mit vielen kleinen Klassen statt mit wenigen grossen arbeitet. Richtig?
Für einige kurze Tips wäre ich dankbar.
 
          
 Moderator
 Moderator Sobald sie dann aber wirklich in der Lage ist, Sachen zu konvertieren, trifft das schon wieder sehr auf die Manipulation von Eigenschaften zu. Wenn man dass dann static realisiert, ist das imho nur eine Vereinfachung des ganzen. Siehe auch das Beispiel der Validierungs-Klasse. Die verändert eingentlich noch weniger als die Konvertierungs-Klasse.
 Sobald sie dann aber wirklich in der Lage ist, Sachen zu konvertieren, trifft das schon wieder sehr auf die Manipulation von Eigenschaften zu. Wenn man dass dann static realisiert, ist das imho nur eine Vereinfachung des ganzen. Siehe auch das Beispiel der Validierungs-Klasse. Die verändert eingentlich noch weniger als die Konvertierungs-Klasse.

Comment