Commit Graph

47 Commits

Author SHA1 Message Date
Kamil Tekiela
15ac2dec9b Better type hints
Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>
2025-12-11 00:16:34 +00:00
Matt Harrison
675193093c
Remove Berkeley DB support and references
- Remove Berkeley DB storage engine classes (Berkeleydb.php, Bdb.php)
- Update StorageEngine.php to remove BDB/BerkeleyDB from getEngine() method
- Remove BerkeleyDB references from table operations and stats templates
- Update StructureController.php to remove BerkeleyDB case handling
- Remove BDB from transactional engines list in Import.php
- Update test files and remove BdbTest.php
- Update documentation to remove Berkeley DB references

Berkeley DB engine was removed from MySQL 5.1.12 in 2006 and is no longer supported.

Signed-off-by: Matt Harrison <matt@harrison.us.com>
2025-10-19 06:44:31 -04:00
Kamil Tekiela
9aaf51a1a7
DocblockReturnArrayFromDirectArrayInstanceRector
Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>
2025-10-12 20:06:05 -03:00
Maurício Meneghini Fauth
d53832d337
Merge branch 'QA_5_2'
Signed-off-by: Maurício Meneghini Fauth <mauricio@mfauth.net>
2025-08-13 19:19:51 -03:00
Maurício Meneghini Fauth
43ea6900cd
Add Response return for ResponseRenderer::redirectToRoute()
Signed-off-by: Maurício Meneghini Fauth <mauricio@mfauth.net>
2025-07-14 22:14:00 -03:00
Maurício Meneghini Fauth
a8b338cb40
Add the Route attribute to controllers classes
Signed-off-by: Maurício Meneghini Fauth <mauricio@mfauth.net>
2025-07-11 19:47:12 -03:00
Maurício Meneghini Fauth
e7765efd63
Make some comparisons stricter
Signed-off-by: Maurício Meneghini Fauth <mauricio@mfauth.net>
2025-07-06 15:44:31 -03:00
Kamil Tekiela
0797f9c44b Rector: small improvements
Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>
2025-06-11 14:43:20 +01:00
Maurício Meneghini Fauth
1a25a06d0d
Replace Config::getInstance with DI in controllers
Signed-off-by: Maurício Meneghini Fauth <mauricio@mfauth.net>
2025-05-01 21:51:43 -03:00
Maurício Meneghini Fauth
8d91387ba9
Merge branch 'QA_5_2'
Signed-off-by: Maurício Meneghini Fauth <mauricio@mfauth.net>
2025-03-30 13:37:05 -03:00
Kamil Tekiela
56c4f21b86 Convert DisableMultiTableMaintenance to use $config
Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>
2025-01-24 17:12:24 +00:00
Maurício Meneghini Fauth
3355837920
Merge branch 'QA_5_2'
Signed-off-by: Maurício Meneghini Fauth <mauricio@mfauth.net>
2024-12-25 12:10:29 -03:00
Kamil Tekiela
8015e4de72 Move DatabaseInterface to Dbal
Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>
2024-12-22 18:34:53 +00:00
Kamil Tekiela
ce016798f9 Remove all unnecessary $GLOBALS['errorUrl']
Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>
2024-12-12 23:05:34 +00:00
Maurício Meneghini Fauth
b68a82e38c
Remove the ResponseRenderer::checkParameters() method
Refactor it to use ResponseRenderer::missingParameterError() instead.

This provides better parameter handling for the controllers.

Signed-off-by: Maurício Meneghini Fauth <mauricio@mfauth.net>
2024-12-09 17:48:27 -03:00
Kamil Tekiela
cf6d5ed4b5
Use getParsedBodyParamAsString (#19333)
* Use getParsedBodyParamAsString
* Remove unused stubs

---------

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>
2024-10-29 12:07:39 -03:00
Maurício Meneghini Fauth
dc1bd60dd1
Fix boolean usage of the return value of preg_match()
preg_match() and preg_match_all() returns the number of pattern matches
(which might be zero), or false on failure. However, preg_match() always
returns 1 when a pattern is matched as it stops searching after the
first match.

- https://www.php.net/manual/en/function.preg-match.php
- https://www.php.net/manual/en/function.preg-match-all.php

Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
2024-07-13 14:43:05 -03:00
Maurício Meneghini Fauth
90ee00efd5
Create the 'pma' global variable for Twig templates
Creates the Twig\PmaGlobalVariable class to handle the 'pma' Twig global
variable.

The idea of this global variable is to automatically inject in all
templates some useful information.

For now it only includes `pma.version` to get the phpMyAdmin version
and `pma.text_dir` to get the text direction ('ltr' or 'rtl').

Adding new variables to the `pma` global variable should be done with
caution.

- https://twig.symfony.com/doc/3.x/advanced.html#globals

Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
2024-07-09 20:30:48 -03:00
Maurício Meneghini Fauth
0925890895
Change Database\StructureController to use DateTimeImmutable
Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
2024-06-12 17:01:35 -03:00
Maurício Meneghini Fauth
dbda4cf483
Change Util::localisedDate() to use DateTimeImmutable
Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
2024-06-12 17:01:35 -03:00
Maurício Meneghini Fauth
d2060c56d5
Change InvocableController to always return a Response
When 'null' is returned, ResponseRenderer::response() is called, so
call it early to always return a Response object.

Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
2024-05-22 15:22:56 -03:00
Maurício Meneghini Fauth
c965d07f68
Remove Controllers\AbstractController abstract class
Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
2024-04-08 15:59:33 -03:00
Maurício Meneghini Fauth
036e8ce95f
Move AbstractController::render method to ResponseRenderer
Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
2024-04-08 15:59:32 -03:00
Maurício Meneghini Fauth
7312c8eee5
Move AbstractController::checkParameters method to ResponseRenderer
Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
2024-04-08 15:59:32 -03:00
Maurício Meneghini Fauth
c212478ac8
Move AbstractController::redirect method to ResponseRenderer class
Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
2024-04-08 15:59:31 -03:00
Maurício Meneghini Fauth
235c61da17
Move addScriptFiles method to ResponseRenderer class
Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
2024-04-08 15:59:30 -03:00
Maurício Meneghini Fauth
181f971bc9
Create InvocableController interface
This creates the contract for the controllers.

Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
2024-04-03 17:03:00 -03:00
Maurício Meneghini Fauth
6188e468ee
Merge branch 'QA_5_2'
Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
2024-03-15 20:20:26 -03:00
Kamil Tekiela
8e4443b17b
Applying suggestions from static analysis tools (#19013)
* Drop array keys from lists

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Import UrlTest

When it doesn't exist in Prod, the code will still work the same.
Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Drop redundant return [];

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Fix object access checks

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Use strict comparison

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Int keys should be specified as integers

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Use empty string check instead of strlen

Potential null deprecations are replaced with loose condition.

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Use stripos instead of *substr

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Simplify substr's 3rd param

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Remove unnecessary defaults

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Replace isZeroBasedArray with array_is_list

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Simplify texEscape()

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Simplify exportZeroBasedArray()

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Replace for loop with array_diff

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Replace for with foreach

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Remove nullable param in backquoteCompat

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Use null-coalescing operator

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Inline $result variable

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Turn $event into a constant

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Move selectDb outside the loop

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Fix code style order of operation

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Remove unnecessary isset argument

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Remove line break

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Use foreach instead of for

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

---------

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>
2024-02-27 12:29:02 -03:00
Maurício Meneghini Fauth
c96439d15d
Remove unused CheckUserPrivileges::getPrivileges() calls
Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
2024-02-09 18:26:31 -03:00
Kamil Tekiela
79a68a4349
Add type hints instead of mixed (#18976)
* Remove some empty() statements

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Fix docbloc

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Add type hint to getHtmlForOneKey()

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Add type to buildColumnCreationStatement()

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Add return type to fetchByMode()

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Add type to getCompatibilities()

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Add type to getDirContent

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Add type to getCharLists()

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Add type to executeSqlQuery()

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Add type to findLineNumberAndColumn

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Add type to lint()

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Add type to getHtmlForNewTables3NF()

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Add type to getViewsAndCreateSqlViewStandIn()

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Add type to getPossibleRowFormat()

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Add type to getTableAltersArray()

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Add type to getValuesForColumn()

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Add type to getAvailableMimeTypes()

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Add types to TwigLintCommand

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Add type to isRowCountApproximated

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Add type to getReplicationStatus()

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Add type in formatVariable()

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Add type to fetchSingleRow()

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Add type to getPages()

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Add type to CentralColumns::getParams()

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Add type to removeRelation()

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Add type to getWarnings()

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Add type to getTableCommentsArray()

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Fix docbloc comment

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Add type to sanitizeUrl()

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Add type to uploadProgressSetup()

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Add type to explodeMarkup()

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Add types in Table

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Add type to getHtmlForDataStatements()

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

---------

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>
2024-02-07 19:19:12 -03:00
Kamil Tekiela
822ebbfe59 Remove unnecessary parentheses
Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>
2024-01-12 15:26:31 +01:00
Maurício Meneghini Fauth
0307babf27
Replace text_dir global var with LanguageManager::$textDir static
Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
2023-12-26 16:20:58 -03:00
Maurício Meneghini Fauth
31419bc770
Merge pull request #18859 from kamil-tekiela/getDbInfo
Refactor getDbInfo() and getTablesWhenOpen()
2023-12-24 03:47:51 -03:00
Kamil Tekiela
49149b218d Make StructureController final
Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>
2023-12-22 13:42:57 +01:00
Kamil Tekiela
c2179c9482 Use count outside of getDbInfo()
Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>
2023-12-20 23:57:09 +01:00
Maurício Meneghini Fauth
711f6c0f14
Replace db global variable with static class property
Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
2023-12-17 14:58:59 -03:00
Kamil Tekiela
702e8e5442 Refactor RecentFavoriteTables
Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>
2023-12-13 20:38:49 +01:00
Kamil Tekiela
ff2eb4df59 Rename the class
Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>
2023-12-13 18:02:41 +01:00
Kamil Tekiela
be734dd209 Introduce an enum TableType
Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>
2023-12-13 18:02:41 +01:00
Kamil Tekiela
fa69c34e63 Move RecentFavoriteTable to its own namespace
Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>
2023-12-13 18:02:41 +01:00
Kamil Tekiela
bf9fc416fe Refactor DbTableExists
Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>
2023-12-13 18:02:40 +01:00
Kamil Tekiela
4fb335e960 Make in_array strict
Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>
2023-12-07 17:11:48 +01:00
Kamil Tekiela
e90cfe584f Change method name
This method doesn't sanitize anything. While it does format the message into HTML, it doesn't remove or clean anything. What it does is replace BB codes into HTML.

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>
2023-12-02 00:10:16 +01:00
Kamil Tekiela
51f9c749ad Simplify code
Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>
2023-11-28 14:42:37 +01:00
Maurício Meneghini Fauth
ae7f509820
Remove ExitException from AbstractController::checkParameters()
Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
2023-09-02 14:48:02 -03:00
Maurício Meneghini Fauth
c2955cc2b2
Rename the directory libraries/classes/ to src/
Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
2023-08-30 15:59:28 -03:00