Plugin Entwicklung 101 πŸ› οΈ

Willkommen in der Entwickler-Dokumentation. Dieses Plugin dient als lebendes Beispiel, wie du eigene Erweiterungen fΓΌr das System schreibst.

Ordnerstruktur

plugins/
β”œβ”€β”€ DeinPluginName/
β”‚ β”œβ”€β”€ Controllers/ // Deine PHP Logik
β”‚ β”œβ”€β”€ views/ // Deine HTML Templates
β”‚ β”œβ”€β”€ Plugin.php // Hauptklasse (Einstiegspunkt)
β”‚ └── plugin.json // Metadaten (Version, Autor)

Routing & Hooks

In der Plugin.php definierst du, unter welcher URL dein Code erreichbar ist.

public function registerRoutes(Router $router): void
{
    // URL registrieren
    $router->get('/meine-seite', 'Plugins\MeinPlugin\Controllers\MyController@index', 'mein.index');
}

Datenbank

Du kannst Tabellen automatisch erstellen lassen, indem du eine ensureTables() Methode in deinen Controller einbaust.

$this->db()->query("CREATE TABLE IF NOT EXISTS plugin_table (...)");

// Daten abrufen
$rows = $this->db()->fetchAll("SELECT * FROM plugin_table");

Views rendern

return $this->view('plugins/DeinPlugin/views/index', [
'titel' => 'Hallo Welt'
], 'layouts/app');