dotkernel / dot-flashmessenger
DotKernel 用于重定向间会话消息的 flash messenger 组件
3.5.0
2024-05-03 18:25 UTC
Requires
- php: ~8.1.0 || ~8.2.0 || ~8.3.0
- laminas/laminas-servicemanager: ^3.22.1
- laminas/laminas-session: ^2.17.0
- mezzio/mezzio-template: ^2.9.0
- psr/http-message: ^1.0 || ^2.0
Requires (Dev)
- laminas/laminas-coding-standard: ^2.5.0
- phpunit/phpunit: ^10.4.2
- vimeo/psalm: ^5.16.0
README
Flash messenger 库用于重定向间的会话消息。Flash 消息,或会话消息是一段文本数据,可以在一次请求后存活(只在下一次请求中可用)。这个库接受会话数据,不仅仅是字符串消息,具有相同的行为。Flash messenger 是一种方便的方法,在会话中添加数据并在下一次请求中获取数据,而不必手动设置和清除数据。
安装
在您的项目文件夹中运行以下命令
composer require dotkernel/dot-flashmessenger
这将安装 laminas/laminas-session
,因为会话处理基于这个库。接下来,将 ConfigProvider
合并到您的应用程序配置中
配置
return [
'dot_flashmessenger' => [
'namespace' => 'flash messages session namespace name'
],
];
设置用于所有 flash 消息和数据的会话命名空间
用法
如果遵循安装步骤,您将已经在服务管理器中有一个 FlashMessenger 服务。只需在需要 flash 消息的类中注入此服务。
在工厂中获取服务
$container->get(FlashMessengerInterface::class);
使用 flash messenger 服务
添加和检索文本消息
$this->flashMessenger->addMessage('error', 'This is a error flash message');
//on the next request you can get all messages from a namespace, or all messages from all namespaces if namespace is omitted
$this->flashMessenger->getMessages('error');
添加通用数据(不仅仅是消息),有不同方法进行,接受数据作为键/值对
$this->flashMessenger->addData('myData', $someData);
// next request
$this->flashMessenger->getData('myData');
还有一些预定义的命名空间,以及使用这些方法添加到预定义命名空间的快捷方式
FlashMessengerInterface::ERROR_NAMESPACE
FlashMessengerInterface::WARNING_NAMESPACE
FlashMessengerInterface::INFO_NAMESPACE
FlashMessengerInterface::SUCCESS_NAMESPACE
使用方法
/**
* @param string $error
* @return void
*/
public function addError($error);
/**
* @param string $info
* @return void
*/
public function addInfo($info);
/**
* @param string $warning
* @return void
*/
public function addWarning($warning);
/**
* @param string $success
* @return void
*/
public function addSuccess($success);
FlashMessengerRenderer
一个能够以 HTML 格式解析 flash messenger 服务内容的类。它使用 TemplateInterface 解析一个部分,将消息、服务和渲染器本身发送到部分模板。在 dot-twigrenderer 中还提供了一个 twig 扩展,用于轻松解析消息块。
已注册的服务
Dot\FlashMessenger\FlashMessengerInterface::class
flash messenger 服务
Dot\FlashMessenger\View\RendererInterface::class
注册的渲染器类