Eine eigene Komponente
Eigene Kalisti-Komponenten zu schreiben ist nicht sonderliche schwer, wenn man schon ein wenig Erfahrung im objektorientierten Programmieren hat. Die neue Komponente muss dem IComponent-Interface genügen und man sollte wissen, wie ein HTTP-Request in PHP verarbeitet wird.
Wer experimentierfreudig ist, kann sich die mitgelieferten Komponenten nehmen und sie zerforschen, wer eine Einführung ohne Forschung haben möchte darf weiterlesen.
Das IComponent-Interface sieht so aus:
interface IComponent {
/**
* Creates a content object, fills and returns it
*
* @param action the action to be done
* @param data the $_REQUEST array with maybe minor changes
* @return a hopefully filled content object
**/
public function getContent($action, $data);
}
Es verspricht nur eine Funktion, getContent. Innerhalb der Funktion wird die Eingabe, bestehend aus action und data verarbeitet.
Für mich hat es sich bewährt die getContent-Funktion mit der Initialisierung des Content-Objektes gefolgt von einem switch-case-Statement zu beginnen.
Das Content-Objekt
Da man in PHP mit Funktionen nur ein Objekt oder Wert pro Aufruf zurückgeben kann, brauchte ich ein Objekt, das mehrere Werte kapselt und sie weiterreichen kann. Das Content-Objekt. Es hält vier Variablen:
private $heading;
private $text;
private $title;
private $alert;
Diese Variablen sind nicht direkt, sondern über getter und setter zugänglich. Wenn ihr also eine Überschrift setzen wollt, dann sieht das so aus:
$content->setHeading("Die Zeitanzeige");
Den Haupttext der Seite setzt ihr mit:
$content->setText(date('d.m.Y H:i:s'));
Die Alert-Variable erlaubt es Fehler- oder Erfolgsmeldungen einzublenden und auffällig darzustellen. Dazu gibt es die Funktionen Content::boxError bzw. Content::boxOkay.
Wenn eure Komponente Datenbankzugriff haben soll, bietet es sich an, die SQL-Funktionen in einer gesonderten Datei zu haben, um sie im Backend weiter zu nutzen.
