A sessions-backed flash messenger for Mezzio
applications. Provides PSR-15 middleware, a SystemMessengerInterface
service, and a view helper for rendering bootstrap-style toast messages.
composer require webware/webware-messagelaminas/laminas-component-installer injects
Webware\Message\ConfigProvider automatically.
Register Webware\Message\Middleware\MessageMiddleware in the route pipeline
(after the session middleware):
// config/pipeline.php
$app->pipe(Mezzio\Session\SessionMiddleware::class);
$app->pipe(Webware\Message\Middleware\MessageMiddleware::class);The middleware exposes a Webware\Message\SystemMessenger instance as the
request attribute SystemMessengerInterface::class:
use Webware\Message\MessageLevel;
use Webware\Message\SystemMessengerInterface;
/** @var SystemMessengerInterface $messenger */
$messenger = $request->getAttribute(SystemMessengerInterface::class);
$messenger->success('Saved!'); // current request only
$messenger->warning('Check this', 1); // current + next request
$messenger->info('Heads up', 1, false); // next request onlyHops semantics: send() defaults to one hop (next request), sendNow()
defaults to zero hops (current request only), and the level helpers
(success, danger, info, warning) default to the current request.
The systemMessenger view helper renders bootstrap-style toasts for all
stored levels:
<?= $this->systemMessenger() ?>Available levels are MessageLevel::Success, MessageLevel::Danger,
MessageLevel::Warning, MessageLevel::Info, and MessageLevel::Message
(SSE base type).
See CONTRIBUTING.md.