dotkernel/dot-flashmessenger

DotKernel 用于重定向间会话消息的 flash messenger 组件

3.5.0 2024-05-03 18:25 UTC

README

OSS Lifecycle PHP from Packagist (specify version)

GitHub issues GitHub forks GitHub stars GitHub license

Build Static codecov

SymfonyInsight

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

注册的渲染器类