communitales / status-bus
Communitales StatusBus 组件
2.2.0
2024-07-01 18:00 UTC
Requires
- php: >=8.3
- communitales/log: ^3.1
- symfony/http-foundation: ^7.0
- symfony/translation: ^7.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.51
- phpstan/phpstan: ^1.10
- phpstan/phpstan-deprecation-rules: ^1.1
- phpstan/phpstan-phpunit: ^1.3
- phpstan/phpstan-symfony: ^1.3
- phpunit/phpunit: ^10.5
- rector/rector: ^1.0
- vimeo/psalm: ^5.23
README
向中央状态总线发送状态消息。
状态内容可以在 UI 中显示或记录到文件中。因此,任何应用程序的服务类都可以向 UI 发送消息。
设置
composer require communitales/status-bus
在 services.yaml
中设置 Symfony
services:
_defaults:
bind:
iterable $statusBusHandlers: !tagged_iterator communitales.status_handler
_instanceof:
Communitales\Component\StatusBus\StatusBusAwareInterface:
calls:
- [setStatusBus, ['@Communitales\Component\StatusBus\StatusBus']]
Communitales\Component\StatusBus\Handler\SymfonySessionFlashBagHandler:
tags: ['communitales.status_handler']
Communitales\Component\StatusBus\StatusBus: ~
用法
你可以向 StatusBus 发送消息
use Communitales\Component\StatusBus\StatusBusAwareInterface;
use Communitales\Component\StatusBus\StatusBusAwareTrait;
use Symfony\Component\Translation\TranslatableMessage;
class MyClass implements StatusBusAwareInterface
{
use StatusBusAwareTrait;
public function doSomething() {
// ...
// You can use the status bus without i18n
$this->statusBus->addSuccess(new TranslatableMessage('The item "example" has been successfully created.'));
// And you can use the status bus with i18n
$this->statusBus->addSuccess(new TranslatableMessage('action_item.success', ['item_name' => 'example']));
}
}