@@ -16,6 +16,89 @@ Requires Slim 3.0.0 or newer.
1616
1717## Usage
1818
19+ ### Slim 4
20+
21+ This example assumes that you have ` php-di/php-di ` installed.
22+
23+ ``` php
24+ <?php
25+
26+ use DI\ContainerBuilder;
27+ use Slim\Factory\AppFactory;
28+ use Slim\Flash\Messages;
29+ use Slim\Routing\RouteContext;
30+
31+ require_once __DIR__ . '/../vendor/autoload.php';
32+
33+ $containerBuilder = new ContainerBuilder();
34+
35+ // Add container definition for the flash component
36+ $containerBuilder->addDefinitions(
37+ [
38+ 'flash' => function () {
39+ $storage = [];
40+ return new Messages($storage);
41+ }
42+ ]
43+ );
44+
45+ AppFactory::setContainer($containerBuilder->build());
46+
47+ $app = AppFactory::create();
48+
49+ // Add session start middleware
50+ $app->add(
51+ function ($request, $next) {
52+ // Start PHP session
53+ if (session_status() !== PHP_SESSION_ACTIVE) {
54+ session_start();
55+ }
56+
57+ // Change flash message storage
58+ $this->get('flash')->__construct($_SESSION);
59+
60+ return $next->handle($request);
61+ }
62+ );
63+
64+ $app->addErrorMiddleware(true, true, true);
65+
66+ // Add routes
67+ $app->get(
68+ '/',
69+ function ($request, $response) {
70+ // Set flash message for next request
71+ $this->get('flash')->addMessage('Test', 'This is a message');
72+
73+ // Redirect
74+ $url = RouteContext::fromRequest($request)->getRouteParser()->urlFor('bar');
75+
76+ return $response->withStatus(302)->withHeader('Location', $url);
77+ }
78+ );
79+
80+ $app->get(
81+ '/bar',
82+ function ($request, $response) {
83+ $flash = $this->get('flash');
84+
85+ // Get flash messages from previous request
86+ $messages = $flash->getMessages();
87+ print_r($messages);
88+
89+ // Get the first message from a specific key
90+ $test = $flash->getFirstMessage('Test');
91+ print_r($test);
92+
93+ return $response;
94+ }
95+ )->setName('bar');
96+
97+ $app->run();
98+ ```
99+
100+ ### Slim 3
101+
19102``` php
20103// Start PHP session
21104session_start();
0 commit comments