Skip to content

Commit 01334ff

Browse files
Merge pull request #18729 from kamil-tekiela/Refactor-Bookmark
Refactor bookmark
2 parents 28d654e + 1ee285c commit 01334ff

36 files changed

Lines changed: 656 additions & 501 deletions

libraries/services.php

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,13 @@
44

55
use PhpMyAdmin\Advisory\Advisor;
66
use PhpMyAdmin\Application;
7+
use PhpMyAdmin\Bookmarks\BookmarkRepository;
78
use PhpMyAdmin\BrowseForeigners;
89
use PhpMyAdmin\CheckUserPrivileges;
910
use PhpMyAdmin\Config;
1011
use PhpMyAdmin\ConfigStorage\Relation;
1112
use PhpMyAdmin\ConfigStorage\RelationCleanup;
13+
use PhpMyAdmin\Console;
1214
use PhpMyAdmin\CreateAddField;
1315
use PhpMyAdmin\Database\CentralColumns;
1416
use PhpMyAdmin\Database\Designer;
@@ -164,11 +166,23 @@
164166
],
165167
'sql' => [
166168
'class' => Sql::class,
167-
'arguments' => ['@dbi', '@relation', '@relation_cleanup', '@operations', '@transformations', '@template'],
169+
'arguments' => [
170+
'@dbi',
171+
'@relation',
172+
'@relation_cleanup',
173+
'@operations',
174+
'@transformations',
175+
'@template',
176+
'@bookmarkRepository',
177+
],
168178
],
169179
'sql_query_form' => [
170180
'class' => SqlQueryForm::class,
171-
'arguments' => ['$template' => '@template', '$dbi' => '@dbi'],
181+
'arguments' => [
182+
'$template' => '@template',
183+
'$dbi' => '@dbi',
184+
'$bookmarkRepository' => '@bookmarkRepository',
185+
],
172186
],
173187
'status_data' => ['class' => Data::class, 'arguments' => ['@dbi','@config']],
174188
'status_monitor' => ['class' => Monitor::class, 'arguments' => ['@dbi']],
@@ -210,5 +224,7 @@
210224
DatabaseInterface::class => 'dbi',
211225
PhpMyAdmin\FlashMessages::class => 'flash',
212226
PhpMyAdmin\ResponseRenderer::class => 'response',
227+
'bookmarkRepository' => ['class' => BookmarkRepository::class, 'arguments' => ['@dbi', '@relation']],
228+
'console' => ['class' => Console::class, 'arguments' => [ '@relation', '@template', '@bookmarkRepository']],
213229
],
214230
];

libraries/services_controllers.php

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,11 +81,15 @@
8181
],
8282
Console\Bookmark\AddController::class => [
8383
'class' => Console\Bookmark\AddController::class,
84-
'arguments' => ['$response' => '@response', '$template' => '@template', '$dbi' => '@dbi'],
84+
'arguments' => [
85+
'$response' => '@response',
86+
'$template' => '@template',
87+
'$bookmarkRepository' => '@bookmarkRepository',
88+
],
8589
],
8690
Console\Bookmark\RefreshController::class => [
8791
'class' => Console\Bookmark\RefreshController::class,
88-
'arguments' => ['$response' => '@response', '$template' => '@template'],
92+
'arguments' => ['$response' => '@response', '$template' => '@template', '$console' => '@console'],
8993
],
9094
Database\CentralColumns\PopulateColumnsController::class => [
9195
'class' => Database\CentralColumns\PopulateColumnsController::class,
@@ -479,6 +483,7 @@
479483
'$import' => '@import',
480484
'$sql' => '@sql',
481485
'$dbi' => '@dbi',
486+
'$bookmarkRepository' => '@bookmarkRepository',
482487
],
483488
],
484489
Import\SimulateDmlController::class => [
@@ -1049,6 +1054,7 @@
10491054
'$checkUserPrivileges' => '@check_user_privileges',
10501055
'$dbi' => '@dbi',
10511056
'$pageSettings' => '@' . PageSettings::class,
1057+
'$bookmarkRepository' => '@bookmarkRepository',
10521058
],
10531059
],
10541060
Table\AddFieldController::class => [

phpstan-baseline.neon

Lines changed: 9 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -120,55 +120,30 @@ parameters:
120120
count: 1
121121
path: src/Advisory/Advisor.php
122122

123-
-
124-
message: "#^Cannot cast mixed to int\\.$#"
125-
count: 1
126-
path: src/Bookmark.php
127-
128-
-
129-
message: "#^Cannot cast mixed to string\\.$#"
130-
count: 1
131-
path: src/Bookmark.php
132-
133123
-
134124
message: "#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#"
135125
count: 1
136-
path: src/Bookmark.php
126+
path: src/Bookmarks/Bookmark.php
137127

138128
-
139129
message: "#^Parameter \\#1 \\$str of method PhpMyAdmin\\\\DatabaseInterface\\:\\:escapeString\\(\\) expects string, mixed given\\.$#"
140130
count: 1
141-
path: src/Bookmark.php
131+
path: src/Bookmarks/Bookmark.php
142132

143133
-
144-
message: "#^Parameter \\#1 \\$string of function strlen expects string, mixed given\\.$#"
134+
message: "#^Parameter \\#1 \\$row of method PhpMyAdmin\\\\Bookmarks\\\\BookmarkRepository\\:\\:createFromRow\\(\\) expects array\\<string\\>, array given\\.$#"
145135
count: 2
146-
path: src/Bookmark.php
136+
path: src/Bookmarks/BookmarkRepository.php
147137

148138
-
149-
message: "#^Parameter \\#2 \\$row of static method PhpMyAdmin\\\\Bookmark\\:\\:createFromRow\\(\\) expects array, mixed given\\.$#"
139+
message: "#^Parameter \\#1 \\$row of method PhpMyAdmin\\\\Bookmarks\\\\BookmarkRepository\\:\\:createFromRow\\(\\) expects array\\<string\\>, mixed given\\.$#"
150140
count: 1
151-
path: src/Bookmark.php
152-
153-
-
154-
message: "#^Property PhpMyAdmin\\\\Bookmark\\:\\:\\$currentUser \\(string\\) does not accept mixed\\.$#"
155-
count: 2
156-
path: src/Bookmark.php
157-
158-
-
159-
message: "#^Property PhpMyAdmin\\\\Bookmark\\:\\:\\$database \\(string\\) does not accept mixed\\.$#"
160-
count: 2
161-
path: src/Bookmark.php
141+
path: src/Bookmarks/BookmarkRepository.php
162142

163143
-
164-
message: "#^Property PhpMyAdmin\\\\Bookmark\\:\\:\\$label \\(string\\) does not accept mixed\\.$#"
165-
count: 2
166-
path: src/Bookmark.php
167-
168-
-
169-
message: "#^Property PhpMyAdmin\\\\Bookmark\\:\\:\\$query \\(string\\) does not accept mixed\\.$#"
170-
count: 2
171-
path: src/Bookmark.php
144+
message: "#^Parameter \\#2 \\$bookmarkFeature of class PhpMyAdmin\\\\Bookmarks\\\\Bookmark constructor expects PhpMyAdmin\\\\ConfigStorage\\\\Features\\\\BookmarkFeature, PhpMyAdmin\\\\ConfigStorage\\\\Features\\\\BookmarkFeature\\|null given\\.$#"
145+
count: 1
146+
path: src/Bookmarks/BookmarkRepository.php
172147

173148
-
174149
message: "#^Cannot access offset mixed on mixed\\.$#"

psalm-baseline.xml

Lines changed: 39 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -39,37 +39,40 @@
3939
<code>$value</code>
4040
</MixedAssignment>
4141
</file>
42-
<file src="src/Bookmark.php">
42+
<file src="src/Bookmarks/Bookmark.php">
4343
<DeprecatedMethod>
44-
<code>Config::getInstance()</code>
45-
<code>Config::getInstance()</code>
46-
<code>Config::getInstance()</code>
4744
<code>escapeString</code>
4845
</DeprecatedMethod>
4946
<MixedArgument>
50-
<code><![CDATA[$bkmFields['bkm_label']]]></code>
51-
<code><![CDATA[$bkmFields['bkm_sql_query']]]></code>
52-
<code>$row</code>
5347
<code>$variables[$i]</code>
5448
</MixedArgument>
55-
<MixedAssignment>
56-
<code><![CDATA[$bookmark->currentUser]]></code>
57-
<code><![CDATA[$bookmark->currentUser]]></code>
58-
<code><![CDATA[$bookmark->database]]></code>
59-
<code><![CDATA[$bookmark->database]]></code>
60-
<code><![CDATA[$bookmark->label]]></code>
61-
<code><![CDATA[$bookmark->label]]></code>
62-
<code><![CDATA[$bookmark->query]]></code>
63-
<code><![CDATA[$bookmark->query]]></code>
64-
<code>$row</code>
65-
</MixedAssignment>
6649
<PossiblyUnusedMethod>
6750
<code>getDatabase</code>
6851
</PossiblyUnusedMethod>
6952
<PossiblyUnusedReturnValue>
7053
<code>bool</code>
7154
</PossiblyUnusedReturnValue>
7255
</file>
56+
<file src="src/Bookmarks/BookmarkRepository.php">
57+
<DeprecatedMethod>
58+
<code>Config::getInstance()</code>
59+
<code>Config::getInstance()</code>
60+
<code>Config::getInstance()</code>
61+
</DeprecatedMethod>
62+
<MixedArgument>
63+
<code>$row</code>
64+
</MixedArgument>
65+
<MixedArgumentTypeCoercion>
66+
<code>$result</code>
67+
<code>$result</code>
68+
</MixedArgumentTypeCoercion>
69+
<MixedAssignment>
70+
<code>$row</code>
71+
</MixedAssignment>
72+
<PossiblyNullArgument>
73+
<code><![CDATA[$this->bookmarkFeature]]></code>
74+
</PossiblyNullArgument>
75+
</file>
7376
<file src="src/BrowseForeigners.php">
7477
<InvalidArrayOffset>
7578
<code><![CDATA[$GLOBALS['theme']]]></code>
@@ -847,7 +850,6 @@
847850
<DeprecatedMethod>
848851
<code>Config::getInstance()</code>
849852
<code>Config::getInstance()</code>
850-
<code>DatabaseInterface::getInstance()</code>
851853
</DeprecatedMethod>
852854
</file>
853855
<file src="src/Controllers/AbstractController.php">
@@ -886,6 +888,7 @@
886888
<file src="src/Controllers/Console/Bookmark/AddController.php">
887889
<DeprecatedMethod>
888890
<code>Config::getInstance()</code>
891+
<code>Config::getInstance()</code>
889892
</DeprecatedMethod>
890893
</file>
891894
<file src="src/Controllers/Console/Bookmark/RefreshController.php">
@@ -1603,7 +1606,7 @@
16031606
<PossiblyInvalidCast>
16041607
<code><![CDATA[$parameters['table']]]></code>
16051608
</PossiblyInvalidCast>
1606-
<PossiblyNullArgument occurrences="1">
1609+
<PossiblyNullArgument>
16071610
<code>$rowCount</code>
16081611
</PossiblyNullArgument>
16091612
</file>
@@ -11112,6 +11115,7 @@
1111211115
<code>Config::getInstance()</code>
1111311116
<code>Config::getInstance()</code>
1111411117
<code>DatabaseInterface::getInstance()</code>
11118+
<code>DatabaseInterface::getInstance()</code>
1111511119
</DeprecatedMethod>
1111611120
<InvalidArrayOffset>
1111711121
<code><![CDATA[$GLOBALS['focus_querywindow']]]></code>
@@ -11138,6 +11142,7 @@
1113811142
<file src="src/Routing/Routing.php">
1113911143
<DeprecatedMethod>
1114011144
<code>Config::getInstance()</code>
11145+
<code>DatabaseInterface::getInstance()</code>
1114111146
</DeprecatedMethod>
1114211147
<MixedArrayAccess>
1114311148
<code><![CDATA[$dispatchData[0]['GET']['/']]]></code>
@@ -13614,12 +13619,22 @@
1361413619
<code>Config::getInstance()</code>
1361513620
</DeprecatedMethod>
1361613621
</file>
13622+
<file src="test/classes/Controllers/CheckRelationsControllerTest.php">
13623+
<DeprecatedMethod>
13624+
<code>Config::getInstance()</code>
13625+
</DeprecatedMethod>
13626+
</file>
1361713627
<file src="test/classes/Controllers/Console/Bookmark/AddControllerTest.php">
1361813628
<DeprecatedMethod>
1361913629
<code>Config::getInstance()</code>
1362013630
<code>Config::getInstance()</code>
1362113631
</DeprecatedMethod>
1362213632
</file>
13633+
<file src="test/classes/Controllers/Console/Bookmark/RefreshControllerTest.php">
13634+
<DeprecatedMethod>
13635+
<code>DatabaseInterface::getInstance()</code>
13636+
</DeprecatedMethod>
13637+
</file>
1362313638
<file src="test/classes/Controllers/Database/EventsControllerTest.php">
1362413639
<DeprecatedMethod>
1362513640
<code>Config::getInstance()</code>
@@ -14781,6 +14796,7 @@
1478114796
<DeprecatedMethod>
1478214797
<code>Config::getInstance()</code>
1478314798
<code>Config::getInstance()</code>
14799+
<code>DatabaseInterface::getInstance()</code>
1478414800
</DeprecatedMethod>
1478514801
<PossiblyUnusedMethod>
1478614802
<code>providerForTestGetHttpHeaders</code>
@@ -15845,6 +15861,9 @@
1584515861
</PossiblyUnusedReturnValue>
1584615862
</file>
1584715863
<file src="test/classes/Stubs/ResponseRenderer.php">
15864+
<DeprecatedMethod>
15865+
<code>Config::getInstance()</code>
15866+
</DeprecatedMethod>
1584815867
<MixedAssignment>
1584915868
<code>$value</code>
1585015869
</MixedAssignment>

0 commit comments

Comments
 (0)