Eigene Datasource verwenden

In dieser Anleitung erstellen wir im Projektverzeichnis application/source/datasource/ eine PHP-Datei MeineDatasource.php. Der Dateiname kann beliebig gewählt werden, wichtig ist die Endung .php.

Das Objekt dieser Klasse soll den Platzhalter mein-zufallszahl mit einer Zufallszahl füllen. Wir verwenden hierfür die PHP-Funktion mt-rand.

namespace MeineWebseite;

class MeineDatasource extends \Alvine\Application\Minerva\DataSource {

    public function getDataset(): \Alvine\Types\Map {

        // Werte aus der Seitendefinition übernehmen
        $min = $this->arguments->getValue('min', 10);
        $max = $this->arguments->getValue('max', 100);

        // Zuweisen der Zufallszahl an den Platzhalter
        return new \Alvine\Types\Map(['mein-zufallszahl' => \mt_rand($min, $max)]);
    }

}

In der Seitendefinition können wir nun im import-Abschnitt die Datasource verwenden. Wir legen als kleinsten Wert min 10 und als größten Wert max 20 fest. Die Zufallszahl soll also im Bereich zwischen 10 und 20 liegen.

import: 
    - datasource:
        - 
            class: \MeineWebseite\MeineDatasource
            arguments: 
                min: 10
                max: 20

Jetzt steht im Dataset der Seite der Wert global->meine-zufallszahl zur Verfügung und kann über einen Operator in der Seite verbaut werden.

"global": {
    "mein-zufallszahl": 14

Im nächsten Artikel wird die Verwendung von css & javascript vorgestellt.