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