SQLite Data Studio: referenca API
Nazaj: SQLite Data Studio
Kaj sme drug paket poklicati v SQLite Data Studiu: javne metode pomočnika z argumenti, vrnjenimi vrednostmi in vedenjem ob napaki.
[Live] Javne metode razreda helper_plugin_wksqliteds. Naložite ga z
plugin_load('helper', 'wksqliteds').
execute()
public function execute($target, $routine, array $params = [])
Povzetek: izvede poimenovano rutino nad razrešeno povezavo in vrne rezultat po polju
returns v manifestu. Celoten opis manifesta in parametrov: Rutine.
| Parameter | Vrsta | Pomen |
|---|---|---|
$target | \PDO|objekt z getPdo()|string|null | ciljna povezava: obstoječi \PDO ali objekt, ki ga posreduje z metodo getPdo(), ime povezave ali null (uporabi se default_connection). |
$routine | string | „ime“ (privzeti nabor) ali „nabor:ime“; pripeta končnica .json se dopušča. |
$params | array | ['ime' => vrednost, ...]. |
Vrnjena vrednost: po returns v manifestu (rows_affected/insert_id/rows/
row/scalar/none).
Vedenje ob napaki: vrže RoutineException pri neznani rutini, neveljavnem manifestu,
manjkajočem cilju povezave brez nastavljenega default_connection ali pri napaki SQL v pogonu.
registerSet()
public function registerSet($name, $dir, array $opts = [])
Povzetek: programsko prijavi nabor rutin (namesto dogodka).
| Parameter | Vrsta | Pomen |
|---|---|---|
$name | string | ime nabora; rutine se nato naslavljajo kot ime:rutina. |
$dir | string | osnovna mapa; mora obstajati. |
$opts | array | rezervirano, trenutno se ne uporablja. |
Vedenje ob napaki: RoutineException pri neveljavnem imenu ali manjkajoči mapi.
getConnection()
public function getConnection($name)
Povzetek: ime povezave razreši v \PDO, ki dovoljuje pisanje.
Vrnjena vrednost: \PDO. Vedenje ob napaki: RoutineException pri neznani povezavi
ali povezavi, ki je ni mogoče odpreti.
getReadonlyConnection()
public function getReadonlyConnection($name)
Povzetek: kot getConnection(), vendar vrne ločen ročaj z zaščito pred pisanjem na ravni
pogona (SQLite: PRAGMA query_only=ON). Za porabnike, ki želijo posnemati način samo za branje v
studiu, ne da bi vplivali na običajni ročaj za pisanje, ki ga uporablja izvajalec rutin – oba ročaja
iste povezave obstajata v isti zahtevi drug ob drugem.
testConnection()
public function testConnection($name)
Povzetek: preveri, ali je poimenovano povezavo dejansko mogoče odpreti.
Vrnjena vrednost: array{ok:bool,error:string,driver:string}.
phpAllowed()
public function phpAllowed()
Povzetek: ali vdelani PHP v datotekah rutin načeloma sme teči (možnost paketa allowPhp
in globalni $conf['phpok'] – zgolj vrata v nastavitvah, neodvisno od konteksta klica).
Dodatna, od konteksta odvisna vezava na superuporabnike za shranjevanje in izvajanje, ki ju sproži
studio, ni del te metode – podrobnosti:
Rutine → model groženj za vdelani PHP.
Vrnjena vrednost: bool.
connectionStore() / routineStore() / setRegistry() / connectionManager()
Tovarniške metode za notranje objekte hrambe in registra (connection\ConnectionStore /
RoutineStore / RoutineSetRegistry / connection\ConnectionManager) – pomembne za
porabnike, ki želijo v upravljanje poseči globlje, kot dopuščata execute() in registerSet()
(na primer z lastnim skrbniškim vmesnikom). routineStore($set = 'default') sprejme ime
nabora.
Dogodki
WKSQLITEDS_REGISTER_ROUTINE_SETS
| Podatek | Vrednost |
|---|---|
| Sproži se | enkrat na zahtevo, ob prvem dostopu do infrastrukture rutin (execute()/registerSet()/routineStore()/setRegistry()) |
| Podatki | primerek RoutineSetRegistry ($event→data), klic $event→data→register($name, $dir, $opts = []) |
| Od | preimenovanja paketa (14. 7. 2026) |
$controller->register_hook('WKSQLITEDS_REGISTER_ROUTINE_SETS', 'BEFORE', $this, 'sets'); public function sets(\dokuwiki\Extension\Event $event) { $event->data->register('reports', __DIR__ . '/sql'); }
WVDSDWMSQLITE_REGISTER_ROUTINE_SETS je bil dobavljen kot časovno omejen prehodni most (oba
dogodka sta se sprožala vzporedno), zdaj pa je odstranjen – zunanja kljuka, ki še posluša staro
ime dogodka, se ne pokliče več in jo je treba preklopiti na WKSQLITEDS_REGISTER_ROUTINE_SETS.
Prijava storitve (wkcore)
API za rutine je objavljen tudi kot storitev sql.routines prek wkcore –
programski porabniki (npr. wkblog) navadno kličejo prek storitve namesto z neposrednim
plugin_load():
$svc = ServiceHub::fromDokuWiki()->service('sql.routines'); $svc?->execute($pdo, 'close_inspection', ['id' => 123, 'user' => 'wolfgang']);
Pot prek storitve je lasten, zaupanja vreden klicatelj – zanj velja ista semantika execute(), ne
pa matrika zmožnosti studia (ta velja samo za spletni dostop prek skrbniškega vmesnika samega,
glejte Pravice).
StepUpBridge
[Live] Povezava s pogodbo Identity Plugin Contract v1. Konstanta in tri javne, čisto statične metode – kliče jih zaslon, tuj klicatelj jih ne potrebuje:
| Element | Odgovori |
|---|---|
StepUpBridge::STEPUP_ACT | vrednost do=, ki jo zaseda most: wksqliteds_stepup |
categoryForAction(string $action): ?string | v katero kategorijo dodatnega preverjanja spada razdeljeno dejanje, ali null za dejanje, ki drugega dejavnika ne potrebuje |
requirementFor(string $category): ?string | zahteva kategorije ali null – neznano ime vrne null in ga je treba obravnavati kot zavrnitev, nikoli kot »brez zahteve« |
scopeIdFor(string $category): string | ID obsega s predpono lastnika, po katerem pogon pravilnikov išče |
Tabela, ki dejanja preslika v kategorije, je zasebna konstanta in obstaja natanko enkrat:
admin.php::handle() jo bere prek categoryForAction(), namesto da bi imel drugo kopijo.
_test/StepUpBridgeTest.php obe preverja drugo proti drugi, v obe smeri.
Katere kategorije obstajajo in zakaj je katero dejanje v njih (in katero izrecno ni): Pravice → drugi dejavnik.
dbadmin\RowMenu
[Live] RowMenu::html($widgets, array $elements, string $label): string – celica mreže z
dejanji za vrstico: meni s tremi pikami iz oblikovalskega sistema in skriti seznam, iz katerega bere
njegov priročni meni, oba iz istega polja elementov.
| Parameter | Pomen |
|---|---|
$widgets | pomočnik wkfluentui_widgets ali null, če ga ni |
$elements | že izrisani in že kodirani kontrolniki – povezave, gumbi, celi obrazci |
$label | kaj ta vrstica je; postane dostopno ime menija |
Tri lastnosti, po pomembnosti:
- Meni s tremi pikami, nikoli vrstica gumbov. Stolpec z dejanji iz kontrolnikov raste z najdaljšo oznako, ne s podatki. Vse štiri mreže tega paketa (rutine, povezave, varnostne kopije, pregled tabel) so do 9. avgusta 2026 v vsaki vrstici prikazovale dva do štiri kontrolnike.
- Skriti seznam nastane iz istega polja, zato je obljuba priročnega menija – vsak vnos je v isti vrstici že viden – resnična po zgradbi, ne po preverjanju.
- Brez kompleta gradnikov stojijo elementi drug ob drugem. Dejanje, ki ga ni mogoče oblikovati, mora biti vseeno dosegljivo.
Prazno polje elementov vrne prazen niz, tako da vrstica brez ponudbe izriše prazno celico in ne praznega menija.