Home-Produkte-Testarea-Kontakt-Datenschutz-Aktualisiert: 21-Dec-2009
< Voriger Tag   Nächster Tag >

Montag, 21. Dezember 2009

PHP: RuBisCO Todo

RuBisCO Todo ist ein einfaches Webprogramm für To-do-Listen -- es dient zur Planung für den Aufbau der RuBisCO-Site.

Task

Zentrale Klasse ist Task. Sie dient als Active Record zum Speichern und Lesen der Daten und überprüft zugleich, ob die eingegebenen Daten dem gewünschten Muster entsprechen.

class Task {
    private $todo;

    private $dbh;

    private $getFilter = 'RAW';

    private $_id     = null;
    private $_task   = null;
    private $_status = null;


    public function read($id = null) ...
    public function insert() ...
    public function update() ...
    public function delete() ...

    ...
}// Task

Überschreiben von __set()

Dazu wird die __set()-Methode überschrieben. Diese wird von PHP aufgerufen wenn mit $task->id = 42 eine Zuweisung erfolgt und die Eigenschaft, in diesem Fall 'id', nicht im Objekt existiert oder nicht für den Aufrufer sichtbar ist, z.B. weil sie als private deklariert ist und die Zuweisung wie hier von außen und nicht innerhalb des Objekts mit $this->id = 42 erfolgt. Damit __set() auch innerhalb aufgerufen wird ist in Task den Eigenschaften (id, task, status) ein _ vorangestellt: $_id, $_task, $_status.

Überschrieben ist __set() so, dass eine zur jeweiligen Eigenschaft dazugehörige Methode aufgerufen wird id -> setId(), task -> setTask(), ... bzw. eine Exception geworfen wird, wenn die Eigenschaft nicht existiert.

public function __set($name,  $value) {
    $methodeName = 'set' . ucfirst($name);

    if(method_exists($this, $methodeName)) {
        $this->$methodeName($value);
    } else {
        throw new Exception(__CLASS__ ." No '{$name}' attribute");
    }
}// __set

Überprüfung in setXXX()

In den setXXX()-Methoden wird dann überprüft, ob die Eingabe dem gewünschten Muster entspricht.

public function setId($value) {
    if(preg_match('/^\d+$/', $value)) {
       $this->_id = $value;

       return $this;
    } else {
       throw new Exception(__CLASS__ . " Wrong value for id attribute.");
    }
}// setId

Quelltext (MIT Lizenz)

Der komplette Quelltext von RuBisCO Todo liegt in Subversion.

[Direktlink]

< Voriger Tag   Nächster Tag >

  RSS V0.91

<Dezember 2009 >
 010203040506
07080910111213
14151617181920
21222324252627
28293031   

Home-Produkte-Testarea-Kontakt-Datenschutz-Aktualisiert: 21-Dec-2009
(C) 2000-2018 by Sven Drieling