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