1*9ff8d41cSJaap de Haan<?php 2*9ff8d41cSJaap de Haan/** 3*9ff8d41cSJaap de Haan * PHPStan stubs for DokuWiki framework classes. 4*9ff8d41cSJaap de Haan * These provide type signatures so PHPStan can analyse DokuWiki plugins 5*9ff8d41cSJaap de Haan * without requiring a full DokuWiki installation. 6*9ff8d41cSJaap de Haan */ 7*9ff8d41cSJaap de Haan 8*9ff8d41cSJaap de Haannamespace dokuwiki\Extension { 9*9ff8d41cSJaap de Haan 10*9ff8d41cSJaap de Haan class Plugin 11*9ff8d41cSJaap de Haan { 12*9ff8d41cSJaap de Haan public function getLang(string $key): string 13*9ff8d41cSJaap de Haan { 14*9ff8d41cSJaap de Haan return ''; 15*9ff8d41cSJaap de Haan } 16*9ff8d41cSJaap de Haan } 17*9ff8d41cSJaap de Haan 18*9ff8d41cSJaap de Haan class ActionPlugin extends Plugin 19*9ff8d41cSJaap de Haan { 20*9ff8d41cSJaap de Haan public function register(EventHandler $controller): void 21*9ff8d41cSJaap de Haan { 22*9ff8d41cSJaap de Haan } 23*9ff8d41cSJaap de Haan } 24*9ff8d41cSJaap de Haan 25*9ff8d41cSJaap de Haan class SyntaxPlugin extends Plugin 26*9ff8d41cSJaap de Haan { 27*9ff8d41cSJaap de Haan /** @var object */ 28*9ff8d41cSJaap de Haan public $Lexer; 29*9ff8d41cSJaap de Haan 30*9ff8d41cSJaap de Haan public function getPType(): string 31*9ff8d41cSJaap de Haan { 32*9ff8d41cSJaap de Haan return ''; 33*9ff8d41cSJaap de Haan } 34*9ff8d41cSJaap de Haan 35*9ff8d41cSJaap de Haan public function getType(): string 36*9ff8d41cSJaap de Haan { 37*9ff8d41cSJaap de Haan return ''; 38*9ff8d41cSJaap de Haan } 39*9ff8d41cSJaap de Haan 40*9ff8d41cSJaap de Haan public function getSort(): int 41*9ff8d41cSJaap de Haan { 42*9ff8d41cSJaap de Haan return 0; 43*9ff8d41cSJaap de Haan } 44*9ff8d41cSJaap de Haan 45*9ff8d41cSJaap de Haan public function connectTo(string $mode): void 46*9ff8d41cSJaap de Haan { 47*9ff8d41cSJaap de Haan } 48*9ff8d41cSJaap de Haan 49*9ff8d41cSJaap de Haan public function postConnect(): void 50*9ff8d41cSJaap de Haan { 51*9ff8d41cSJaap de Haan } 52*9ff8d41cSJaap de Haan 53*9ff8d41cSJaap de Haan /** 54*9ff8d41cSJaap de Haan * @param mixed[] $data 55*9ff8d41cSJaap de Haan * @return mixed[] 56*9ff8d41cSJaap de Haan */ 57*9ff8d41cSJaap de Haan public function handle(string $match, int $state, int $pos, \Doku_Handler $handler): array 58*9ff8d41cSJaap de Haan { 59*9ff8d41cSJaap de Haan return []; 60*9ff8d41cSJaap de Haan } 61*9ff8d41cSJaap de Haan 62*9ff8d41cSJaap de Haan /** 63*9ff8d41cSJaap de Haan * @param mixed[] $data 64*9ff8d41cSJaap de Haan */ 65*9ff8d41cSJaap de Haan public function render(string $mode, \Doku_Renderer $renderer, array $data): bool 66*9ff8d41cSJaap de Haan { 67*9ff8d41cSJaap de Haan return false; 68*9ff8d41cSJaap de Haan } 69*9ff8d41cSJaap de Haan } 70*9ff8d41cSJaap de Haan 71*9ff8d41cSJaap de Haan class EventHandler 72*9ff8d41cSJaap de Haan { 73*9ff8d41cSJaap de Haan /** 74*9ff8d41cSJaap de Haan * @param mixed $param 75*9ff8d41cSJaap de Haan */ 76*9ff8d41cSJaap de Haan public function register_hook(string $event, string $advise, object $obj, string $method, $param = null): void 77*9ff8d41cSJaap de Haan { 78*9ff8d41cSJaap de Haan } 79*9ff8d41cSJaap de Haan } 80*9ff8d41cSJaap de Haan 81*9ff8d41cSJaap de Haan class Event 82*9ff8d41cSJaap de Haan { 83*9ff8d41cSJaap de Haan /** @var mixed */ 84*9ff8d41cSJaap de Haan public $data; 85*9ff8d41cSJaap de Haan 86*9ff8d41cSJaap de Haan public function stopPropagation(): void 87*9ff8d41cSJaap de Haan { 88*9ff8d41cSJaap de Haan } 89*9ff8d41cSJaap de Haan 90*9ff8d41cSJaap de Haan public function preventDefault(): void 91*9ff8d41cSJaap de Haan { 92*9ff8d41cSJaap de Haan } 93*9ff8d41cSJaap de Haan } 94*9ff8d41cSJaap de Haan} 95*9ff8d41cSJaap de Haan 96*9ff8d41cSJaap de Haannamespace dokuwiki\File { 97*9ff8d41cSJaap de Haan 98*9ff8d41cSJaap de Haan class MediaResolver 99*9ff8d41cSJaap de Haan { 100*9ff8d41cSJaap de Haan public function __construct(string $id) 101*9ff8d41cSJaap de Haan { 102*9ff8d41cSJaap de Haan } 103*9ff8d41cSJaap de Haan 104*9ff8d41cSJaap de Haan public function resolveId(string $src): string 105*9ff8d41cSJaap de Haan { 106*9ff8d41cSJaap de Haan return ''; 107*9ff8d41cSJaap de Haan } 108*9ff8d41cSJaap de Haan } 109*9ff8d41cSJaap de Haan} 110*9ff8d41cSJaap de Haan 111*9ff8d41cSJaap de Haannamespace dokuwiki\Form { 112*9ff8d41cSJaap de Haan 113*9ff8d41cSJaap de Haan class Form 114*9ff8d41cSJaap de Haan { 115*9ff8d41cSJaap de Haan } 116*9ff8d41cSJaap de Haan} 117*9ff8d41cSJaap de Haan 118*9ff8d41cSJaap de Haannamespace { 119*9ff8d41cSJaap de Haan 120*9ff8d41cSJaap de Haan class Doku_Handler 121*9ff8d41cSJaap de Haan { 122*9ff8d41cSJaap de Haan } 123*9ff8d41cSJaap de Haan 124*9ff8d41cSJaap de Haan class Doku_Renderer 125*9ff8d41cSJaap de Haan { 126*9ff8d41cSJaap de Haan /** @var string */ 127*9ff8d41cSJaap de Haan public string $doc = ''; 128*9ff8d41cSJaap de Haan 129*9ff8d41cSJaap de Haan /** 130*9ff8d41cSJaap de Haan * @param array<string, mixed> $data 131*9ff8d41cSJaap de Haan */ 132*9ff8d41cSJaap de Haan public function startSectionEdit(int $start, array $data): string 133*9ff8d41cSJaap de Haan { 134*9ff8d41cSJaap de Haan return ''; 135*9ff8d41cSJaap de Haan } 136*9ff8d41cSJaap de Haan 137*9ff8d41cSJaap de Haan public function finishSectionEdit(int $end = 0): void 138*9ff8d41cSJaap de Haan { 139*9ff8d41cSJaap de Haan } 140*9ff8d41cSJaap de Haan } 141*9ff8d41cSJaap de Haan 142*9ff8d41cSJaap de Haan class Doku_Form 143*9ff8d41cSJaap de Haan { 144*9ff8d41cSJaap de Haan public function setHiddenField(string $name, string $value): void 145*9ff8d41cSJaap de Haan { 146*9ff8d41cSJaap de Haan } 147*9ff8d41cSJaap de Haan 148*9ff8d41cSJaap de Haan public function addHTML(string $html): void 149*9ff8d41cSJaap de Haan { 150*9ff8d41cSJaap de Haan } 151*9ff8d41cSJaap de Haan 152*9ff8d41cSJaap de Haan /** @return int|false */ 153*9ff8d41cSJaap de Haan public function findPositionByAttribute(string $name, string $value) 154*9ff8d41cSJaap de Haan { 155*9ff8d41cSJaap de Haan return false; 156*9ff8d41cSJaap de Haan } 157*9ff8d41cSJaap de Haan 158*9ff8d41cSJaap de Haan public function removeElement(int $pos): void 159*9ff8d41cSJaap de Haan { 160*9ff8d41cSJaap de Haan } 161*9ff8d41cSJaap de Haan } 162*9ff8d41cSJaap de Haan 163*9ff8d41cSJaap de Haan class renderer_plugin_dw2pdf extends Doku_Renderer 164*9ff8d41cSJaap de Haan { 165*9ff8d41cSJaap de Haan } 166*9ff8d41cSJaap de Haan 167*9ff8d41cSJaap de Haan // DokuWiki constants 168*9ff8d41cSJaap de Haan define('DOKU_LEXER_ENTER', 1); 169*9ff8d41cSJaap de Haan define('DOKU_LEXER_MATCHED', 2); 170*9ff8d41cSJaap de Haan define('DOKU_LEXER_UNMATCHED', 3); 171*9ff8d41cSJaap de Haan define('DOKU_LEXER_EXIT', 4); 172*9ff8d41cSJaap de Haan define('DOKU_LEXER_SPECIAL', 5); 173*9ff8d41cSJaap de Haan define('AUTH_READ', 1); 174*9ff8d41cSJaap de Haan define('DOKU_BASE', '/'); 175*9ff8d41cSJaap de Haan 176*9ff8d41cSJaap de Haan /** 177*9ff8d41cSJaap de Haan * @param string $text 178*9ff8d41cSJaap de Haan * @return mixed[] 179*9ff8d41cSJaap de Haan */ 180*9ff8d41cSJaap de Haan function p_get_instructions(string $text): array 181*9ff8d41cSJaap de Haan { 182*9ff8d41cSJaap de Haan return []; 183*9ff8d41cSJaap de Haan } 184*9ff8d41cSJaap de Haan 185*9ff8d41cSJaap de Haan /** 186*9ff8d41cSJaap de Haan * @param mixed[] $instructions 187*9ff8d41cSJaap de Haan * @param mixed[] $info 188*9ff8d41cSJaap de Haan */ 189*9ff8d41cSJaap de Haan function p_render(string $mode, array $instructions, array &$info): string 190*9ff8d41cSJaap de Haan { 191*9ff8d41cSJaap de Haan return ''; 192*9ff8d41cSJaap de Haan } 193*9ff8d41cSJaap de Haan 194*9ff8d41cSJaap de Haan /** 195*9ff8d41cSJaap de Haan * @return object|null 196*9ff8d41cSJaap de Haan */ 197*9ff8d41cSJaap de Haan function plugin_load(string $type, string $name) 198*9ff8d41cSJaap de Haan { 199*9ff8d41cSJaap de Haan return null; 200*9ff8d41cSJaap de Haan } 201*9ff8d41cSJaap de Haan 202*9ff8d41cSJaap de Haan function auth_quickaclcheck(string $id): int 203*9ff8d41cSJaap de Haan { 204*9ff8d41cSJaap de Haan return 0; 205*9ff8d41cSJaap de Haan } 206*9ff8d41cSJaap de Haan 207*9ff8d41cSJaap de Haan function mediaFN(string $id): string 208*9ff8d41cSJaap de Haan { 209*9ff8d41cSJaap de Haan return ''; 210*9ff8d41cSJaap de Haan } 211*9ff8d41cSJaap de Haan 212*9ff8d41cSJaap de Haan function msg(string $message, int $lvl = 0): void 213*9ff8d41cSJaap de Haan { 214*9ff8d41cSJaap de Haan } 215*9ff8d41cSJaap de Haan} 216