Mastershrimp: Statische Methode einer abstrakten Klasse aufrufen

Beitrag lesen

Heyho!

Hm ich glaube wir setzen den Konstruktor anders ein. Bei mir sieht der Konstruktor für ein Account-Objekt vereinfacht so aus:

  
public function __construct($accountID) {  
$query = mysql_query("SELECT name, email, fax FROM tab_accounts WHERE accountID = '$accountID' LIMIT 1");  
  
$data = mysql_fetch_object($query);  
  
$this->name = $data->name;  
$this->email = $data->email;  
//...weitere Attribute  
}  

Erstellen (sprich: in der DB speichern) tu ich ein Account Objekt mit der statischen Methode createAccount($name, $email, $fax, ...);

Benutzt du den Konstruktor zum Erstellen (d.h. physischen Speichern in der DB) eines Account-Objekts? Ich benutz den nur um mir das Objekt aus den DB-Daten zu generieren....Ka, hat mir mal einer so gezeigt und macht find ich Sinn.

Ich glaub ich lös das obenstehende Problem so, dass ich eine Objektmethode private function validateValueHelper() in die konkrete Objektklasse implementiere, die die statische Methode aufruft. Da müsste ja $self funktionieren glaub ich (noch nicht getestet)

  
private function validateValueHelper($attribute, $newValue) {  
return $self::validateValue($attribute, $newValue);  
}  

Dann trigger ich aus der setValue() diese Helper-Methode, die dann die statische Methode aufruft. Da setValue() eine Objektmethode ist, klappt das ja auch (sofern $self so funktioniert wie ichs mir erhoffe, nämlich dass $self::validateValue(...) in der eigenen Klasse nach einer statischen Methode validateValue() sucht und diese aufruft).
Für die anderen Fälle kann ich die validateValue() ja eh direkt aufrufen.

Macht Sinn? ;)
Mal am WE testen....Muss noch für Klausuren lernen *brrrr*

Gruß

Mastershrimp