OOP in PHP: Daten automatisch löschen

Hallo,

du kannst dir den switch sparen, wenn du die Methode method_exists() verwendest:

PHP:
public function __call($func, $args)
{
  if(method_exists($this, $func))
  {
    return call_user_func(array($this, $func));
  }
  else
  {
     throw new Exception("Method $func does not exists!");
  }
}

Ohne Garantie, das da Fehler drin ist; hab das auf dem Kopf gemacht ;-). Funktionieren dürfte es allerdings so oder so ähnlich.
 
Der Gedanke hinter der SWITCH-Anweisung war, dass man für jede Methode, welche aufgerufen wird, speziell Ausführungen schreiben kann.
 
Um nochmal auf TYPOlight zurück zu kommen.

(Ich hoffe ich bekomm alles noch aus dem Kopf richtig zusammen. ;))

Es gibt einen Ordner system/libraries, in welchem eine Database.php liegt. Diese enthält ein paar abstrakte Klassen.
Je nach dem, welche Datenbank man verwendet, wird dann aus dem Ordner system/Drivers die Datei DB_MYSQL.php, DB_MSSQL.php, etc. geladen.
Das sollte eigentlich schon alles sein, zumindest kann ich mich an keine weiteren Klassen erinnern, die mit der Datenbank-Klasse in Zusammenhang gestanden haben könnten.

Allerdings habe ich absolut nichts darüber gefunden, wodurch diese Function-Chain (Keine Ahnung wie das wirklich heisst.) ermöglicht wird, da auch so gut wie keine magische Funktionen verwendet werden.

*edit*
Achso, um auf deinen letzten Post einzugehen.
Ich persönlich finde die Idee mit dem Switch vollkommen am eigentlichen Thema vorbei.

Ob ich $foo->bar() aufrufe und dann in einem Switch lande und dieser komisches Zeug macht, oder ob ich tatsächlich die Methode bar() definiere, die im Endeffekt genau das selbe macht wie der Switch, macht in meinen Augen keinerlei unterschied - ausser das letztere Variante übersichtlicher ist. :)
 
Zuletzt bearbeitet:
Zurück