Merge pull request #17300 from mauriciofauth/dbi-dummy-mark-test
[phpmyadmin.git] / psalm.xml
blob4dc7a64b78a43ba31358d808a7eddace5d7d61ae
1 <?xml version="1.0"?>
2 <psalm
3     autoloader="test/bootstrap-static.php"
4     errorLevel="1"
5     reportMixedIssues="true"
6     sealAllMethods="true"
7     resolveFromConfigFile="true"
8     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
9     xmlns="https://getpsalm.org/schema/config"
10     xsi:schemaLocation="https://getpsalm.org/schema/config vendor/vimeo/psalm/config.xsd"
11     errorBaseline="psalm-baseline.xml"
13     <projectFiles>
14         <directory name="libraries"/>
15         <directory name="setup"/>
16         <directory name="test/classes"/>
17         <directory name="test/selenium"/>
18         <file name="js/messages.php"/>
19         <file name="index.php"/>
20         <file name="show_config_errors.php"/>
21         <file name="url.php"/>
22         <ignoreFiles>
23             <directory name="vendor"/>
24             <directory name="libraries/cache"/>
25         </ignoreFiles>
26     </projectFiles>
28     <plugins>
29         <pluginClass class="Psalm\PhpUnitPlugin\Plugin"/>
30     </plugins>
32     <globals>
33         <var name="cfg" type="array{
34             AllowUserDropDatabase: bool,
35             blowfish_secret: string,
36             BrowseMIME: bool,
37             BZipDump: bool,
38             CaptchaCsp: string,
39             CookieSameSite: 'Lax'|'Strict'|'None',
40             CSPAllow: string,
41             DBG: array{sql: bool, sqllog: bool, demo: bool, simple2fa: bool},
42             DefaultTabDatabase: 'structure'|'sql'|'search'|'operations',
43             DefaultTabServer: 'welcome'|'databases'|'status'|'variables'|'privileges',
44             DefaultTabTable: 'structure'|'sql'|'search'|'insert'|'browse',
45             DisableMultiTableMaintenance: bool,
46             enable_drag_drop_import: bool,
47             EnableAutocompleteForTablesAndColumns: bool,
48             environment: 'production'|'development',
49             ExecTimeLimit: 0|positive-int,
50             Export: array,
51             FirstLevelNavigationItems: positive-int,
52             GridEditing: 'double-click'|'click'|'disabled',
53             GZipDump: bool,
54             IgnoreMultiSubmitErrors: bool,
55             InitialSlidersState: 'open'|'closed'|'disabled',
56             LimitChars: positive-int,
57             LoginCookieStore: 0|positive-int,
58             LoginCookieValidity: positive-int,
59             LoginCookieValidityDisableWarning: bool,
60             MaxDbList: positive-int,
61             MaxCharactersInDisplayedSQL: positive-int,
62             MaxRows: positive-int,
63             MaxTableList: positive-int,
64             NaturalOrder: bool,
65             NavigationDisplayLogo: bool,
66             NavigationDisplayServers: bool,
67             NavigationLinkWithMainPanel: bool,
68             NavigationLogoLink: string,
69             NavigationLogoLinkWindow: 'main'|'new',
70             NavigationTreeAutoexpandSingleDb: bool,
71             NavigationTreeDbSeparator: string,
72             NavigationTreeEnableGrouping: bool,
73             NavigationTreePointerEnable: bool,
74             NavigationTreeTableSeparator: string|string[]|false,
75             NavigationWidth: 0|positive-int,
76             NumFavoriteTables: 0|positive-int,
77             PmaNoRelation_DisableWarning: bool,
78             ProtectBinary: 'blob'|'noblob'|'all'|false,
79             ProxyPass: string,
80             ProxyUrl: string,
81             ProxyUser: string,
82             RepeatCells: 0|positive-int,
83             SendErrorReports: 'ask'|'always'|'never',
84             Server: array{
85                 AllowDeny: array{order: ''|'deny,allow'|'allow,deny'|'explicit', rules: string[]},
86                 AllowNoPassword: bool,
87                 AllowRoot: bool,
88                 auth_type: 'config'|'http'|'signon'|'cookie',
89                 controlpass: string,
90                 controluser: string,
91                 DisableIS: bool,
92                 host: string,
93                 password: string,
94                 pmadb: string|false,
95                 port: string,
96                 tracking_default_statements: string,
97                 user: string,
98                 verbose: string
99             },
100             ServerDefault: 0|positive-int,
101             Servers: array[],
102             ShowAll: bool,
103             ShowChgPassword: bool,
104             ShowCreateDb: bool,
105             ShowDatabasesNavigationAsTree: bool,
106             ShowFieldTypesInDataEditView: bool,
107             ShowFunctionFields: bool,
108             ShowPhpInfo: bool,
109             ShowServerInfo: bool,
110             ShowSQL: bool,
111             ShowStats: bool,
112             SkipLockedTables: bool,
113             SuhosinDisableWarning: bool,
114             ThemeManager: bool,
115             TranslationWarningThreshold: int,
116             UseDbSearch: bool,
117             VersionCheck: bool,
118             ZeroConf: bool,
119             ZipDump: bool
120         }"/>
121         <var name="containerBuilder" type="Symfony\Component\DependencyInjection\ContainerBuilder"/>
122         <var name="dbi" type="PhpMyAdmin\DatabaseInterface"/>
123         <var name="GLOBALS" type="array{
124             asfile: bool,
125             buffer_needed: bool,
126             cached_affected_rows: int|numeric-string,
127             cfg: array{
128                 AllowArbitraryServer: bool,
129                 AllowThirdPartyFraming: bool|'sameorigin',
130                 ArbitraryServerRegexp: string,
131                 AvailableCharsets: string[],
132                 BrowseMarkerEnable: bool,
133                 BrowsePointerEnable: bool,
134                 BrowseMIME: bool,
135                 BZipDump: bool,
136                 CaptchaApi: string,
137                 CaptchaLoginPublicKey: string,
138                 CaptchaRequestParam: string,
139                 CaptchaResponseParam: string,
140                 CharEditing: 'input'|'textarea',
141                 CharTextareaCols: positive-int,
142                 CharTextareaRows: positive-int,
143                 CodemirrorEnable: bool,
144                 CompressOnFly: bool,
145                 Confirm: bool,
146                 ConsoleEnterExecutes: bool,
147                 DBG: array{sql: bool, sqllog: bool, demo: bool, simple2fa: bool},
148                 DefaultForeignKeyChecks: 'default'|'enable'|'disable',
149                 DefaultQueryDatabase: string,
150                 DefaultQueryTable: string,
151                 DefaultTabDatabase: 'structure'|'sql'|'search'|'operations',
152                 DefaultTabServer: 'welcome'|'databases'|'status'|'variables'|'privileges',
153                 DefaultTabTable: 'structure'|'sql'|'search'|'insert'|'browse',
154                 DefaultTransformations: array{
155                     Bool2Text: array{string, string},
156                     DateFormat: array{0|positive-int, string, 'local'|'utc'},
157                     External: array{int, string, int, int},
158                     Hex: array{0|positive-int},
159                     Inline: array{0: 0|positive-int, 1: 0|positive-int, wrapper_link: string|null, wrapper_params: array&lt;array-key, string&gt;},
160                     PreApPend: array{string, string},
161                     Substring: array{0|positive-int, 'all'|int, string},
162                     TextImageLink: array{string|null, 0|positive-int, 0|positive-int},
163                     TextLink: array{string|null, string|null, bool|null}
164                 },
165                 DisableMultiTableMaintenance: bool,
166                 DisplayServersList: bool,
167                 enable_drag_drop_import: bool,
168                 ExecTimeLimit: 0|positive-int,
169                 FirstLevelNavigationItems: positive-int,
170                 ForeignKeyDropdownOrder: array{0: 'content-id'|'id-content', 1?: 'content-id'|'id-content'},
171                 ForeignKeyMaxLimit: positive-int,
172                 GridEditing: 'double-click'|'click'|'disabled',
173                 GZipDump: bool,
174                 HideStructureActions: bool,
175                 IgnoreMultiSubmitErrors: bool,
176                 Import: array,
177                 InitialSlidersState: 'open'|'closed'|'disabled',
178                 InsertRows: positive-int,
179                 LimitChars: positive-int,
180                 LinkLengthLimit: positive-int,
181                 LintEnable: bool,
182                 LoginCookieDeleteAll: bool,
183                 LoginCookieRecall: bool,
184                 LoginCookieStore: 0|positive-int,
185                 LoginCookieValidity: positive-int,
186                 LongtextDoubleTextarea: bool,
187                 MaxDbList: positive-int,
188                 MaxCharactersInDisplayedSQL: positive-int,
189                 MaxExactCount: positive-int,
190                 MaxExactCountViews: 0|positive-int,
191                 MaxNavigationItems: positive-int,
192                 MaxTableList: positive-int,
193                 maxRowPlotLimit: positive-int,
194                 MaxRows: positive-int,
195                 MaxSizeForInputField: positive-int,
196                 MinSizeForInputField: 0|positive-int,
197                 MysqlMinVersion: array{internal: int, human: string},
198                 MysqlSslWarningSafeHosts: string[],
199                 NaturalOrder: bool,
200                 NavigationLinkWithMainPanel: bool,
201                 NavigationTreeDbSeparator: string,
202                 NavigationTreeDefaultTabTable: 'structure'|'sql'|'search'|'insert'|'browse',
203                 NavigationTreeDefaultTabTable2: 'structure'|'sql'|'search'|'insert'|'browse'|'',
204                 NavigationTreeDisplayDbFilterMinimum: positive-int,
205                 NavigationTreeDisplayItemFilterMinimum: positive-int,
206                 NavigationTreeEnableExpansion: bool,
207                 NavigationTreeEnableGrouping: bool,
208                 NavigationTreeShowEvents: bool,
209                 NavigationTreeShowFunctions: bool,
210                 NavigationTreeShowProcedures: bool,
211                 NavigationTreeShowTables: bool,
212                 NavigationTreeShowViews: bool,
213                 NavigationTreeTableLevel: positive-int,
214                 NavigationTreeTableSeparator: string|string[]|false,
215                 NumFavoriteTables: 0|positive-int,
216                 NumRecentTables: 0|positive-int,
217                 OBGzip: 'auto'|bool,
218                 PDFDefaultPageSize: string,
219                 PDFPageSizes: string[],
220                 PersistentConnections: bool,
221                 PropertiesNumColumns: positive-int,
222                 ProtectBinary: 'blob'|'noblob'|'all'|false,
223                 QueryHistoryDB: bool,
224                 QueryHistoryMax: positive-int,
225                 RelationalDisplay: 'K'|'D',
226                 RememberSorting: bool,
227                 RepeatCells: 0|positive-int,
228                 ReservedWordDisableWarning: bool,
229                 RetainQueryBox: bool,
230                 RowActionLinks: 'left'|'right'|'both'|'none',
231                 RowActionLinksWithoutUnique: bool,
232                 SaveCellsAtOnce: bool,
233                 SendErrorReports: 'ask'|'always'|'never',
234                 Server: array{
235                     auth_type: 'config'|'http'|'signon'|'cookie',
236                     bookmarktable: string|false,
237                     central_columns: string|false,
238                     column_info: string|false,
239                     designer_settings: string|false,
240                     DisableIS: bool,
241                     export_templates: string|false,
242                     favorite: string|false,
243                     history: string|false,
244                     host: string,
245                     MaxTableUiprefs: positive-int,
246                     navigationhiding: string|false,
247                     only_db: string|string[],
248                     password: string,
249                     pdf_pages: string|false,
250                     pmadb: string|false,
251                     port: string,
252                     recent: string|false,
253                     relation: string|false,
254                     savedsearches: string|false,
255                     SessionTimeZone: string,
256                     SignonCookieParams: array{lifetime: 0|positive-int, path: string, domain: string, secure: bool, httponly: bool, samesite?: 'Lax'|'Strict'},
257                     SignonScript: string,
258                     SignonSession: string,
259                     SignonURL: string,
260                     table_coords: string|false,
261                     table_info: string|false,
262                     table_uiprefs: string|false,
263                     tracking: string|false,
264                     tracking_add_drop_database: bool,
265                     tracking_add_drop_table: bool,
266                     tracking_add_drop_view: bool,
267                     tracking_default_statements: string,
268                     tracking_version_auto_create: bool,
269                     user: string,
270                     userconfig: string|false,
271                     usergroups: string|false,
272                     users: string|false,
273                     verbose: string
274                 },
275                 ServerDefault: 0|positive-int,
276                 Servers: array[],
277                 ShowAll: bool,
278                 ShowBrowseComments: bool,
279                 ShowColumnComments: bool,
280                 ShowCreateDb: bool,
281                 ShowDatabasesNavigationAsTree: bool,
282                 ShowDbStructureCharset: bool,
283                 ShowDbStructureComment: bool,
284                 ShowDbStructureCreation: bool,
285                 ShowDbStructureLastCheck: bool,
286                 ShowDbStructureLastUpdate: bool,
287                 ShowFieldTypesInDataEditView: bool,
288                 ShowFunctionFields: bool,
289                 ShowHint: bool,
290                 ShowPropertyComments: bool,
291                 ShowSQL: bool,
292                 ShowStats: bool,
293                 TextareaAutoSelect: bool,
294                 TextareaCols: positive-int,
295                 TextareaRows: positive-int,
296                 ThemeDefault: string,
297                 ThemePerServer: bool,
298                 TitleDatabase: string,
299                 TitleDefault: string,
300                 TitleServer: string,
301                 TitleTable: string,
302                 UserprefsDeveloperTab: bool,
303                 UserprefsDisallow: string[],
304                 VersionCheck: bool,
305                 ZeroConf: bool,
306                 ZipDump: bool
307             },
308             charset: string,
309             charset_connection: string,
310             codegen_format: 0|1,
311             col_priv: bool,
312             collation_connection: string,
313             complete_query: string,
314             compression: 'none'|'zip'|'gzip',
315             conn_error: string,
316             config: PhpMyAdmin\Config,
317             ConfigFile: PhpMyAdmin\Config\ConfigFile,
318             crlf: string,
319             csv_columns: bool,
320             csv_enclosed: string,
321             csv_escaped: string,
322             csv_separator: string,
323             csv_terminated: string,
324             db: string,
325             db_priv: bool,
326             dbi: PhpMyAdmin\DatabaseInterface,
327             dbs_to_test: string[]|false,
328             dblist: PhpMyAdmin\Database\DatabaseList,
329             display_query: string,
330             errno: int,
331             error: bool,
332             error_message: string,
333             errorHandler: PhpMyAdmin\ErrorHandler,
334             excel_edition: 'win'|'mac_excel2003'|'mac_excel2008',
335             file_handle: resource|null,
336             finished: bool,
337             from_cookie: bool,
338             goto: string,
339             hostname: string,
340             import_file: string,
341             import_file_name: string,
342             import_run_buffer: array,
343             import_text: string,
344             is_create_db_priv: bool,
345             is_reload_priv: bool,
346             knjenc: string,
347             lang: string,
348             latex_data_caption: string,
349             latex_data_continued_caption: string,
350             latex_data_label: string,
351             latex_null: string,
352             latex_structure_caption: string,
353             latex_structure_continued_caption: string,
354             latex_structure_label: string,
355             maxsize: string,
356             memory_limit: int,
357             message: PhpMyAdmin\Message,
358             ods_buffer: string,
359             odt_buffer: string,
360             offset: int,
361             old_tz: string,
362             onfly_compression: bool,
363             output_charset_conversion: bool,
364             output_kanji_conversion: bool,
365             plugin_param: string|array{export_type: string, single_table: bool},
366             plugin_scripts: string[],
367             pma_auth_server: string,
368             PMA_PHP_SELF: string,
369             proc_priv: bool,
370             querytime: float|int,
371             read_limit: int,
372             save_on_server: bool,
373             server: int,
374             SESSION_KEY: string,
375             showtable: array&lt;string, string|null&gt;,
376             sql_compatibility: 'NONE'|'ANSI'|'DB2'|'MAXDB'|'MYSQL323'|'MYSQL40'|'MSSQL'|'ORACLE'|'TRADITIONAL',
377             sql_constraints: string,
378             sql_constraints_query: string,
379             sql_drop_foreign_keys: string,
380             sql_if_not_exists: bool,
381             sql_ignore: bool,
382             sql_insert_syntax: 'complete'|'extended'|'both'|'none',
383             sql_max_query_size: 0|positive-int,
384             sql_query: string,
385             sql_structure_or_data: 'structure'|'data'|'structure_and_data',
386             sql_type: 'INSERT'|'UPDATE'|'REPLACE',
387             table: string,
388             table_priv: bool,
389             tbl_storage_engine: string,
390             text_dir: string,
391             token_mismatch: bool,
392             token_provided: bool,
393             urlParams: array,
394             username: string,
395             xml_export_triggers: bool,
396             xml_export_views: bool
397         }"/>
398         <var name="PMA_PHP_SELF" type="string"/>
399     </globals>
400 </psalm>