Sie befinden sich hier: start » de » Interne Dokumentation » DokuWiki-Erweiterungen (WvdS) » SQLite Data Studio » SQLite Data Studio: API-Referenz

SQLite Data Studio: API-Referenz

Zurück: SQLite Data Studio


[Live] Öffentliche Methoden von helper_plugin_wksqliteds. Laden über plugin_load('helper', 'wksqliteds').

execute()

public function execute($target, $routine, array $params = [])

Zusammenfassung: Führt eine benannte Routine gegen die aufgelöste Verbindung aus und liefert das Ergebnis gemäß der returns-Angabe des Manifests. Vollständige Manifest-/Parameter-Doku: SQLite Data Studio: Routinen.

Parameter Typ Bedeutung
$target \PDO|Objekt mit getPdo()|string|null Ziel-Verbindung: ein bestehendes \PDO/SQLiteDB, ein Verbindungs-Name, oder null (nutzt default_connection).
$routine string „name“ (Default-Set) oder „set:name“; ein angehängtes .json wird toleriert.
$params array ['name' => wert, ...].

Rückgabewert: gemäß returns des Manifests (rows_affected/insert_id/rows/ row/scalar/none).

Fehlerverhalten: wirft RoutineException bei unbekannter Routine, ungültigem Manifest, fehlendem Verbindungsziel ohne konfigurierten default_connection, oder einem SQL-Fehler der Engine.

registerSet()

public function registerSet($name, $dir, array $opts = [])

Zusammenfassung: Registriert programmatisch ein Routine-Set (Alternative zum Event).

Parameter Typ Bedeutung
$name string Set-Name, Adressierung danach als name:routine.
$dir string Basisverzeichnis; muss existieren.
$opts array reserviert, aktuell ungenutzt.

Fehlerverhalten: RoutineException bei ungültigem Namen oder fehlendem Verzeichnis.

getConnection()

public function getConnection($name)

Zusammenfassung: Löst einen Verbindungs-Namen zu einem beschreibbaren \PDO auf.

Rückgabewert: \PDO. Fehlerverhalten: RoutineException bei unbekannter oder nicht öffnbarer Verbindung.

getReadonlyConnection()

public function getReadonlyConnection($name)

Zusammenfassung: Wie getConnection(), liefert aber ein separates Handle mit motor-seitigem Nur-Lesen-Schutz (SQLite: PRAGMA query_only=ON). Für Konsumenten, die den Studio-Readonly-Modus spiegeln wollen, ohne das reguläre, beschreibbare Handle der Routinen-Engine zu beeinflussen — beide Handles derselben Verbindung koexistieren im selben Request.

testConnection()

public function testConnection($name)

Zusammenfassung: Prüft, ob eine benannte Verbindung tatsächlich geöffnet werden kann.

Rückgabewert: array{ok:bool,error:string,driver:string}.

phpAllowed()

public function phpAllowed()

Zusammenfassung: Ob Inline-PHP in Routinen-Dateien grundsätzlich laufen darf (Plugin-Option allowPhp und globales $conf['phpok'] — reines Konfigurations-Gate, unabhängig vom aufrufenden Kontext). Die zusätzliche, kontextabhängige Superuser-Bindung für Studio-getriggerte Speicher-/Ausführungspfade ist nicht Teil dieser Methode — Details: Routinen → Inline-PHP- Bedrohungsmodell.

Rückgabewert: bool.

connectionStore() / routineStore() / setRegistry() / connectionManager()

Fabrikmethoden für die internen Speicher-/Registry-Objekte (connection\ConnectionStore/RoutineStore/RoutineSetRegistry/ connection\ConnectionManager) — für Konsumenten relevant, die tiefer in die Verwaltung eingreifen wollen, als es execute()/registerSet() erlauben (z. B. eine eigene Admin-Oberfläche). routineStore($set = 'default') nimmt den Set-Namen entgegen.

Events

WKSQLITEDS_REGISTER_ROUTINE_SETS

Metadatum Wert
Ausgelöst einmalig je Request, beim ersten Zugriff auf die Routinen-Infrastruktur (execute()/registerSet()/routineStore()/setRegistry())
Nutzdaten die RoutineSetRegistry-Instanz ($event→data), Aufruf von $event→data→register($name, $dir, $opts = [])
Seit Umbenennung des Plugins (2026-07-14)
$controller->register_hook('WKSQLITEDS_REGISTER_ROUTINE_SETS', 'BEFORE', $this, 'sets');
public function sets(\dokuwiki\Extension\Event $event) {
    $event->data->register('reports', __DIR__ . '/sql');
}
Breaking Change für Drittcode: das Vorgänger-Event WVDSDWMSQLITE_REGISTER_ROUTINE_SETS wurde als befristeter Übergangs-Shim mit ausgeliefert (beide Events feuerten parallel), ist inzwischen aber entfernt — jeder externe Hook, der noch auf den alten Event-Namen lauscht, wird nicht mehr aufgerufen und muss auf WKSQLITEDS_REGISTER_ROUTINE_SETS umgestellt werden.

Service-Registrierung (wkcore)

Die Routinen-API wird zusätzlich als Service sql.routines über Core Plugin veröffentlicht — programmatische Konsumenten (z. B. wkblog) rufen typischerweise über den Service statt über ein direktes plugin_load():

$svc = ServiceHub::fromDokuWiki()->service('sql.routines');
$svc?->execute($pdo, 'close_pruefung', ['id' => 123, 'user' => 'wolfgang']);

Der Servicepfad ist ein first-party, vertrauter Aufrufer — er unterliegt derselben execute()-Semantik, aber nicht der Studio-Berechtigungs-Matrix (die gilt nur für Web-Zugriffe über die Admin-Oberfläche selbst, s. SQLite Data Studio: Berechtigungen).

StepUpBridge

[Live seit 2026-08-09] Die Anbindung an den Identity Plugin Contract v1. Drei öffentliche, reine Statiken — der Bildschirm ruft sie, ein fremder Aufrufer braucht sie nicht:

Element Antwortet
StepUpBridge::STEPUP_ACT den do=-Wert, den die Brücke beansprucht: wksqliteds_stepup
categoryForAction(string $action): ?string zu welcher Step-up-Kategorie eine verteilte Aktion gehört, oder null für eine, die keinen zweiten Faktor braucht
requirementFor(string $category): ?string die Anforderung einer Kategorie, oder null — ein unbekannter Name ergibt null und muss als Ablehnung behandelt werden, nie als „keine Anforderung„
scopeIdFor(string $category): string die eigentümerpräfixierte Scope-Id, auf die die Richtlinien-Engine keyt

Die Aktions-zu-Kategorie-Tabelle ist eine private Konstante und existiert genau einmal: admin.php::handle() liest sie über categoryForAction(), statt eine zweite Kopie zu tragen. _test/StepUpBridgeTest.php sichert beide gegeneinander ab, in beide Richtungen.

Welche Kategorien es gibt und warum welche Aktion darin liegt (und welche ausdrücklich nicht): Berechtigungen → Zweiter Faktor.

dbadmin\RowMenu

[Live seit 2026-08-09] RowMenu::html($widgets, array $elements, string $label): string — eine Rasterzelle voller Zeilenaktionen: das Kebab-Menü des Designsystems plus die versteckte Liste, aus der sein Kontextmenü liest, beide aus demselben Element-Feld.

Parameter Bedeutung
$widgets der wkfluentui_widgets-Helfer, oder null, wenn er fehlt
$elements bereits gerenderte, bereits maskierte Bedienelemente — Links, Schaltflächen, ganze Formulare
$label was diese Zeile ist; wird der zugängliche Name des Menüs

Drei Eigenschaften, in der Reihenfolge ihrer Wichtigkeit:

  • Ein Kebab, nie eine Knopfleiste. Eine Aktionsspalte aus Bedienelementen wächst mit der längsten Beschriftung statt mit den Daten. Alle vier Raster dieses Pakets (Routinen, Verbindungen, Sicherungen, Tabellenübersicht) zeigten bis zum 9. August 2026 zwei bis vier Bedienelemente je Zeile.
  • Die versteckte Liste kommt aus demselben Feld, womit die Zusicherung des Kontextmenüs — jeder Eintrag ist in derselben Zeile bereits sichtbar — durch Konstruktion wahr ist statt durch Nachsehen.
  • Ohne den Bausatz stehen die Elemente nebeneinander. Eine Aktion, die sich nicht gestalten lässt, muss trotzdem erreichbar sein.

Ein leeres Element-Feld ergibt die leere Zeichenkette, sodass eine Zeile ohne Angebot eine leere Zelle rendert statt eines leeren Menüs.

Verwandte Themen


Verifiziert gegen: wk-dw-sqliteds-plugin@ca32bc1 (2026-08-09).

de/wiki/dwe/wksqliteds/api-reference.txt · Zuletzt geändert: von 0.0.0.0