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. 

Powered by Kalisti