Skip to content

Commit fefd6d1

Browse files
Merge pull request #19169 from MauricioFauth/flash-messages-statement
Add support for statement messages in FlashMessenger class
2 parents 6c0ae41 + 1a357c3 commit fefd6d1

23 files changed

Lines changed: 267 additions & 214 deletions

‎app/services.php‎

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
use PhpMyAdmin\Export\Options;
2525
use PhpMyAdmin\Export\TemplateModel;
2626
use PhpMyAdmin\FileListing;
27-
use PhpMyAdmin\FlashMessages;
27+
use PhpMyAdmin\FlashMessenger;
2828
use PhpMyAdmin\Http\Factory\ResponseFactory;
2929
use PhpMyAdmin\Import\Import;
3030
use PhpMyAdmin\Import\SimulateDml;
@@ -109,7 +109,7 @@
109109
'export_template_model' => ['class' => TemplateModel::class, 'arguments' => ['@dbi']],
110110
'expression_language' => ['class' => ExpressionLanguage::class],
111111
'file_listing' => ['class' => FileListing::class],
112-
'flash' => ['class' => FlashMessages::class],
112+
FlashMessenger::class => ['class' => FlashMessenger::class],
113113
'http_request' => ['class' => HttpRequest::class],
114114
ResponseFactory::class => [
115115
'class' => ResponseFactory::class,
@@ -223,7 +223,6 @@
223223
UserPrivilegesFactory::class => ['class' => UserPrivilegesFactory::class, 'arguments' => ['@dbi']],
224224
'version_information' => ['class' => VersionInformation::class],
225225
DatabaseInterface::class => 'dbi',
226-
PhpMyAdmin\FlashMessages::class => 'flash',
227226
PhpMyAdmin\ResponseRenderer::class => 'response',
228227
'bookmarkRepository' => ['class' => BookmarkRepository::class, 'arguments' => ['@dbi', '@relation']],
229228
'console' => ['class' => Console::class, 'arguments' => [ '@relation', '@template', '@bookmarkRepository']],

‎app/services_controllers.php‎

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
use PhpMyAdmin\Controllers\VersionCheckController;
4242
use PhpMyAdmin\Controllers\View;
4343
use PhpMyAdmin\DbTableExists;
44+
use PhpMyAdmin\FlashMessenger;
4445
use PhpMyAdmin\Http\Factory\ResponseFactory;
4546
use PhpMyAdmin\Plugins\AuthenticationPluginFactory;
4647
use PhpMyAdmin\Theme\ThemeManager;
@@ -298,7 +299,7 @@
298299
'$dbi' => '@dbi',
299300
'$relation' => '@relation',
300301
'$relationCleanup' => '@relation_cleanup',
301-
'$flash' => '@flash',
302+
'$flashMessenger' => '@' . FlashMessenger::class,
302303
'$structureController' => '@' . Database\StructureController::class,
303304
],
304305
],
@@ -321,7 +322,7 @@
321322
],
322323
Database\Structure\ReplacePrefixController::class => [
323324
'class' => Database\Structure\ReplacePrefixController::class,
324-
'arguments' => ['$dbi' => '@dbi', '$structureController' => '@' . Database\StructureController::class],
325+
'arguments' => ['@dbi', '@' . ResponseFactory::class, '@' . FlashMessenger::class],
325326
],
326327
Database\Structure\ShowCreateController::class => [
327328
'class' => Database\Structure\ShowCreateController::class,
@@ -976,7 +977,7 @@
976977
'arguments' => [
977978
'$response' => '@response',
978979
'$dbi' => '@dbi',
979-
'$flash' => '@flash',
980+
'$flashMessenger' => '@' . FlashMessenger::class,
980981
'$relationCleanup' => '@relation_cleanup',
981982
],
982983
],

‎phpstan-baseline.neon‎

Lines changed: 11 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2005,6 +2005,11 @@ parameters:
20052005
count: 1
20062006
path: src/Controllers/Database/Structure/ReplacePrefixController.php
20072007

2008+
-
2009+
message: "#^Parameter \\#3 \\$statement of method PhpMyAdmin\\\\FlashMessenger\\:\\:addMessage\\(\\) expects string, mixed given\\.$#"
2010+
count: 1
2011+
path: src/Controllers/Database/Structure/ReplacePrefixController.php
2012+
20082013
-
20092014
message: "#^Call to function array_search\\(\\) requires parameter \\#3 to be set\\.$#"
20102015
count: 4
@@ -7448,17 +7453,17 @@ parameters:
74487453
-
74497454
message: "#^Cannot access an offset on mixed\\.$#"
74507455
count: 1
7451-
path: src/FlashMessages.php
7456+
path: src/FlashMessenger.php
74527457

74537458
-
7454-
message: "#^Cannot access offset string on mixed\\.$#"
7455-
count: 2
7456-
path: src/FlashMessages.php
7459+
message: "#^Method PhpMyAdmin\\\\FlashMessenger\\:\\:getCurrentMessages\\(\\) should return array\\<int, array\\{context\\: string, message\\: string, statement\\: string\\}\\> but returns mixed\\.$#"
7460+
count: 1
7461+
path: src/FlashMessenger.php
74577462

74587463
-
7459-
message: "#^Property PhpMyAdmin\\\\FlashMessages\\:\\:\\$previousMessages \\(array\\<string, array\\<string\\>\\>\\) does not accept mixed\\.$#"
7464+
message: "#^Property PhpMyAdmin\\\\FlashMessenger\\:\\:\\$previousMessages \\(array\\<int, array\\{context\\: string, message\\: string, statement\\: string\\}\\>\\) does not accept mixed\\.$#"
74607465
count: 1
7461-
path: src/FlashMessages.php
7466+
path: src/FlashMessenger.php
74627467

74637468
-
74647469
message: "#^Cannot access offset 'chars' on mixed\\.$#"
@@ -15420,16 +15425,6 @@ parameters:
1542015425
count: 1
1542115426
path: tests/unit/Export/OptionsTest.php
1542215427

15423-
-
15424-
message: "#^Parameter \\#2 \\$array of static method PHPUnit\\\\Framework\\\\Assert\\:\\:assertArrayHasKey\\(\\) expects array\\|ArrayAccess, mixed given\\.$#"
15425-
count: 1
15426-
path: tests/unit/FlashMessagesTest.php
15427-
15428-
-
15429-
message: "#^Parameter \\#2 \\$array of static method PHPUnit\\\\Framework\\\\Assert\\:\\:assertArrayNotHasKey\\(\\) expects array\\|ArrayAccess, mixed given\\.$#"
15430-
count: 1
15431-
path: tests/unit/FlashMessagesTest.php
15432-
1543315428
-
1543415429
message: "#^Cannot access offset 'queries' on mixed\\.$#"
1543515430
count: 1

‎psalm-baseline.xml‎

Lines changed: 10 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -5942,14 +5942,19 @@
59425942
<code><![CDATA[Config::getInstance()]]></code>
59435943
</DeprecatedMethod>
59445944
</file>
5945-
<file src="src/FlashMessages.php">
5945+
<file src="src/FlashMessenger.php">
59465946
<MixedArrayAssignment>
5947-
<code><![CDATA[$this->storage[self::STORAGE_KEY][$key]]]></code>
5948-
<code><![CDATA[$this->storage[self::STORAGE_KEY][$key]]]></code>
5947+
<code><![CDATA[$this->storage[self::STORAGE_KEY][]]]></code>
59495948
</MixedArrayAssignment>
59505949
<MixedAssignment>
59515950
<code><![CDATA[$this->previousMessages]]></code>
59525951
</MixedAssignment>
5952+
<MixedInferredReturnType>
5953+
<code><![CDATA[FlashMessageList]]></code>
5954+
</MixedInferredReturnType>
5955+
<MixedReturnStatement>
5956+
<code><![CDATA[$this->storage[self::STORAGE_KEY]]]></code>
5957+
</MixedReturnStatement>
59535958
</file>
59545959
<file src="src/Font.php">
59555960
<MixedArgument>
@@ -11657,9 +11662,9 @@
1165711662
<code><![CDATA[empty($_POST['item_timing'])]]></code>
1165811663
</RiskyTruthyFalsyComparison>
1165911664
</file>
11660-
<file src="src/Twig/FlashMessagesExtension.php">
11665+
<file src="src/Twig/FlashMessengerExtension.php">
1166111666
<InvalidArgument>
11662-
<code><![CDATA[[FlashMessages::class, 'getMessages']]]></code>
11667+
<code><![CDATA[[FlashMessenger::class, 'getMessages']]]></code>
1166311668
</InvalidArgument>
1166411669
</file>
1166511670
<file src="src/TwoFactor.php">
@@ -13639,19 +13644,6 @@
1363913644
<code><![CDATA[compressedFiles]]></code>
1364013645
</PossiblyUnusedMethod>
1364113646
</file>
13642-
<file src="tests/unit/FlashMessagesTest.php">
13643-
<InvalidScalarArgument>
13644-
<code><![CDATA[$_SESSION]]></code>
13645-
</InvalidScalarArgument>
13646-
<MixedArgument>
13647-
<code><![CDATA[$_SESSION[self::STORAGE_KEY]]]></code>
13648-
<code><![CDATA[$_SESSION[self::STORAGE_KEY]]]></code>
13649-
</MixedArgument>
13650-
<MixedArrayAccess>
13651-
<code><![CDATA[$_SESSION[self::STORAGE_KEY]['error']]]></code>
13652-
<code><![CDATA[$_SESSION[self::STORAGE_KEY]['error']]]></code>
13653-
</MixedArrayAccess>
13654-
</file>
1365513647
<file src="tests/unit/FooterTest.php">
1365613648
<DeprecatedMethod>
1365713649
<code><![CDATA[Config::getInstance()]]></code>
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{% for flash_message in flash_messages() %}
2+
{% if flash_message.statement is empty %}
3+
<div class="alert alert-{{ flash_message.context }}" role="alert">
4+
{{ flash_message.message }}
5+
</div>
6+
{% else %}
7+
{{ statement_message(flash_message.message, flash_message.statement, flash_message.context) }}
8+
{% endif %}
9+
{% endfor %}

‎resources/templates/database/structure/change_prefix_form.twig‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<form id="ajax_form" action="{{ url(route) }}" method="post">
1+
<form class="disableAjax" id="ajax_form" action="{{ url(route) }}" method="post">
22
{{ get_hidden_inputs(url_params) }}
33
<div class="mb-3">
44
<label for="initialPrefixInput" class="form-label">{{ t('From') }}</label>

‎resources/templates/database/structure/index.twig‎

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,4 @@
1-
{% for flash_key, flash_messages in flash() %}
2-
{% for flash_message in flash_messages %}
3-
<div class="alert alert-{{ flash_key }}" role="alert">
4-
{{ flash_message }}
5-
</div>
6-
{% endfor %}
7-
{% endfor %}
1+
{{ include('components/flash_messages.twig', with_context = false) }}
82

93
{% if has_tables %}
104
<div id="tableslistcontainer">

‎resources/templates/export.twig‎

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,7 @@
77
{{ page_settings_error_html|raw }}
88
{{ page_settings_html|raw }}
99

10-
{% for flash_key, flash_messages in flash() %}
11-
{% for flash_message in flash_messages %}
12-
<div class="alert alert-{{ flash_key }}" role="alert">
13-
{{ flash_message }}
14-
</div>
15-
{% endfor %}
16-
{% endfor %}
10+
{{ include('components/flash_messages.twig', with_context = false) }}
1711

1812
{% block message %}{% endblock %}
1913

‎resources/templates/table/page_with_secondary_tabs.twig‎

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,7 @@
1414
</ul>
1515
{% endif %}
1616

17-
{% for flash_key, flash_messages in flash() %}
18-
{% for flash_message in flash_messages %}
19-
<div class="alert alert-{{ flash_key }}" role="alert">
20-
{{ flash_message }}
21-
</div>
22-
{% endfor %}
23-
{% endfor %}
17+
{{ include('components/flash_messages.twig', with_context = false) }}
2418

2519
<div id="structure_content">
2620
{% block content %}{% endblock %}

‎src/Controllers/Database/Structure/EmptyTableController.php‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
use PhpMyAdmin\Controllers\InvocableController;
1313
use PhpMyAdmin\Current;
1414
use PhpMyAdmin\DatabaseInterface;
15-
use PhpMyAdmin\FlashMessages;
15+
use PhpMyAdmin\FlashMessenger;
1616
use PhpMyAdmin\Http\Response;
1717
use PhpMyAdmin\Http\ServerRequest;
1818
use PhpMyAdmin\Message;
@@ -34,7 +34,7 @@ public function __construct(
3434
private readonly DatabaseInterface $dbi,
3535
private readonly Relation $relation,
3636
private readonly RelationCleanup $relationCleanup,
37-
private readonly FlashMessages $flash,
37+
private readonly FlashMessenger $flashMessenger,
3838
private readonly StructureController $structureController,
3939
) {
4040
}
@@ -46,7 +46,7 @@ public function __invoke(ServerRequest $request): Response|null
4646
$selected = $request->getParsedBodyParam('selected', []);
4747

4848
if ($multBtn !== __('Yes')) {
49-
$this->flash->addMessage('success', __('No change'));
49+
$this->flashMessenger->addMessage('success', __('No change'));
5050
$this->response->redirectToRoute('/database/structure', ['db' => Current::$database]);
5151

5252
return null;

0 commit comments

Comments
 (0)