PHPackages                             frzb/transactional-messenger - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Parsing &amp; Serialization](/categories/parsing)
4. /
5. frzb/transactional-messenger

ActiveLibrary[Parsing &amp; Serialization](/categories/parsing)

frzb/transactional-messenger
============================

The TransactionalMessenger component allows make messenger transactional

v1.5.0(1y ago)0602MITPHPPHP &gt;=8.2

Since Aug 18Pushed 1y ago1 watchersCompare

[ Source](https://github.com/fractalzombie/frzb-transactional-messenger)[ Packagist](https://packagist.org/packages/frzb/transactional-messenger)[ Docs](https://github.com/fractalzombie/frzb-transactional-messenger)[ RSS](/packages/frzb-transactional-messenger/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (10)Dependencies (11)Versions (20)Used By (0)

Transactional Messenger Component
=================================

[](#transactional-messenger-component)

[![Workflow Build Status](https://github.com/fractalzombie/frzb-transactional-messenger/actions/workflows/build.yml/badge.svg?event=push)](https://github.com/fractalzombie/frzb-transactional-messenger/actions/workflows/build.yml/badge.svg?event=push)[![Scrutinizer Code Quality](https://camo.githubusercontent.com/f137de276d65d572b0148b60168f65172b7597e5823c4bdfacb15f6783d60fb3/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f6672616374616c7a6f6d6269652f66727a622d7472616e73616374696f6e616c2d6d657373656e6765722f6261646765732f7175616c6974792d73636f72652e706e673f623d6d61696e)](https://scrutinizer-ci.com/g/fractalzombie/frzb-transactional-messenger/?branch=main)[![Code Intelligence Status](https://camo.githubusercontent.com/8c057aaa4bd22cefb4c234f9b06b2e3093ea8562eb445fe5b68fc2ee44be4ad7/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f6672616374616c7a6f6d6269652f66727a622d7472616e73616374696f6e616c2d6d657373656e6765722f6261646765732f636f64652d696e74656c6c6967656e63652e7376673f623d6d61696e)](https://scrutinizer-ci.com/code-intelligence)[![Build Status](https://camo.githubusercontent.com/70ac27f107e41f1d525440c659716a0e87a9e172475dcc6c71f8b21d7ca5e29d/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f6672616374616c7a6f6d6269652f66727a622d7472616e73616374696f6e616c2d6d657373656e6765722f6261646765732f6275696c642e706e673f623d6d61696e)](https://scrutinizer-ci.com/g/fractalzombie/frzb-transactional-messenger/build-status/main)[![Coverage Status](https://camo.githubusercontent.com/cec486335184c734c4509530b8a592731e8d16e51410ce1b60b51cc82e379a5a/68747470733a2f2f636f766572616c6c732e696f2f7265706f732f6769746875622f6672616374616c7a6f6d6269652f66727a622d7472616e73616374696f6e616c2d6d657373656e6765722f62616467652e7376673f6272616e63683d6d61696e)](https://coveralls.io/github/fractalzombie/frzb-transactional-messenger?branch=main)[![Quality Gate Status](https://camo.githubusercontent.com/9580b443b7e6b6c000cbf269c274426703012727658ff1fac34261c4d4e645e5/68747470733a2f2f736f6e6172636c6f75642e696f2f6170692f70726f6a6563745f6261646765732f6d6561737572653f70726f6a6563743d6672616374616c7a6f6d6269655f66727a622d7472616e73616374696f6e616c2d6d657373656e676572266d65747269633d616c6572745f737461747573)](https://sonarcloud.io/summary/new_code?id=fractalzombie_frzb-transactional-messenger)[![Bugs](https://camo.githubusercontent.com/b0c516124bd6053bda4657764e247c64d0d4a6353fe739102516c4b94da1289a/68747470733a2f2f736f6e6172636c6f75642e696f2f6170692f70726f6a6563745f6261646765732f6d6561737572653f70726f6a6563743d6672616374616c7a6f6d6269655f66727a622d7472616e73616374696f6e616c2d6d657373656e676572266d65747269633d62756773)](https://sonarcloud.io/summary/new_code?id=fractalzombie_frzb-transactional-messenger)[![Security Rating](https://camo.githubusercontent.com/e61a1491fd0ac0538cf259462ded516446f4938cfc59d4e7d7569f6cfef96078/68747470733a2f2f736f6e6172636c6f75642e696f2f6170692f70726f6a6563745f6261646765732f6d6561737572653f70726f6a6563743d6672616374616c7a6f6d6269655f66727a622d7472616e73616374696f6e616c2d6d657373656e676572266d65747269633d73656375726974795f726174696e67)](https://sonarcloud.io/summary/new_code?id=fractalzombie_frzb-transactional-messenger)[![Maintainability Rating](https://camo.githubusercontent.com/5284f81f8c99e08dcfb0bbb9ebf213c4f2088ea039bd80d812c1e8fd93e2b835/68747470733a2f2f736f6e6172636c6f75642e696f2f6170692f70726f6a6563745f6261646765732f6d6561737572653f70726f6a6563743d6672616374616c7a6f6d6269655f66727a622d7472616e73616374696f6e616c2d6d657373656e676572266d65747269633d7371616c655f726174696e67)](https://sonarcloud.io/summary/new_code?id=fractalzombie_frzb-transactional-messenger)[![Code Smells](https://camo.githubusercontent.com/184d13f8ea40c0e9116cf460472e0ab5b0db0ef9e6623ad11ebaa1d432d45664/68747470733a2f2f736f6e6172636c6f75642e696f2f6170692f70726f6a6563745f6261646765732f6d6561737572653f70726f6a6563743d6672616374616c7a6f6d6269655f66727a622d7472616e73616374696f6e616c2d6d657373656e676572266d65747269633d636f64655f736d656c6c73)](https://sonarcloud.io/summary/new_code?id=fractalzombie_frzb-transactional-messenger)[![Lines of Code](https://camo.githubusercontent.com/a1fe45b51da69210a90382fc838e017768ed2703b716f371140b290d3b7aa076/68747470733a2f2f736f6e6172636c6f75642e696f2f6170692f70726f6a6563745f6261646765732f6d6561737572653f70726f6a6563743d6672616374616c7a6f6d6269655f66727a622d7472616e73616374696f6e616c2d6d657373656e676572266d65747269633d6e636c6f63)](https://sonarcloud.io/summary/new_code?id=fractalzombie_frzb-transactional-messenger)[![Coverage](https://camo.githubusercontent.com/3c28dd2cd415cd282fe3ff8de6615a62926a507b837d9a19dd14c6c87a65d6be/68747470733a2f2f736f6e6172636c6f75642e696f2f6170692f70726f6a6563745f6261646765732f6d6561737572653f70726f6a6563743d6672616374616c7a6f6d6269655f66727a622d7472616e73616374696f6e616c2d6d657373656e676572266d65747269633d636f766572616765)](https://sonarcloud.io/summary/new_code?id=fractalzombie_frzb-transactional-messenger)[![Technical Debt](https://camo.githubusercontent.com/5d5007fb1b70976d9c5880dc8a544b54be9ed0d8d30b2a0852651faee8a3540c/68747470733a2f2f736f6e6172636c6f75642e696f2f6170692f70726f6a6563745f6261646765732f6d6561737572653f70726f6a6563743d6672616374616c7a6f6d6269655f66727a622d7472616e73616374696f6e616c2d6d657373656e676572266d65747269633d7371616c655f696e646578)](https://sonarcloud.io/summary/new_code?id=fractalzombie_frzb-transactional-messenger)[![Reliability Rating](https://camo.githubusercontent.com/bce4d2fcde50855f015d8155ceb0b01bc7c132c6061448998980dfd76cd2d84b/68747470733a2f2f736f6e6172636c6f75642e696f2f6170692f70726f6a6563745f6261646765732f6d6561737572653f70726f6a6563743d6672616374616c7a6f6d6269655f66727a622d7472616e73616374696f6e616c2d6d657373656e676572266d65747269633d72656c696162696c6974795f726174696e67)](https://sonarcloud.io/summary/new_code?id=fractalzombie_frzb-transactional-messenger)[![Duplicated Lines (%)](https://camo.githubusercontent.com/d3193acad9ac09427a3ee92764c017d7496a2eebfa21f18048982772656a75e4/68747470733a2f2f736f6e6172636c6f75642e696f2f6170692f70726f6a6563745f6261646765732f6d6561737572653f70726f6a6563743d6672616374616c7a6f6d6269655f66727a622d7472616e73616374696f6e616c2d6d657373656e676572266d65747269633d6475706c6963617465645f6c696e65735f64656e73697479)](https://sonarcloud.io/summary/new_code?id=fractalzombie_frzb-transactional-messenger)[![Vulnerabilities](https://camo.githubusercontent.com/f0cb358214bfc9c4716b2a4ca142420767f5a53452f419649821a055963d1b15/68747470733a2f2f736f6e6172636c6f75642e696f2f6170692f70726f6a6563745f6261646765732f6d6561737572653f70726f6a6563743d6672616374616c7a6f6d6269655f66727a622d7472616e73616374696f6e616c2d6d657373656e676572266d65747269633d76756c6e65726162696c6974696573)](https://sonarcloud.io/summary/new_code?id=fractalzombie_frzb-transactional-messenger)

The `Transactional Messenger` component allows make messenger transactional

Installation
------------

[](#installation)

The recommended way to install is through Composer:

```
composer require frzb/transactional-messenger

```

It requires PHP version 8.2 and higher.

Usage `#[Transactional]`
------------------------

[](#usage-transactional)

`#[Transactional]` will automatically create and close transaction for your messages, By default `CommitType` is `CommitType::OnTerminate`

CommitTypes
-----------

[](#committypes)

- `CommitType::OnTerminate` for requests, executes when response is sent without exceptions
- `CommitType::OnResponse` for requests, executes when request end without exceptions
- `CommitType::onHandled` for consumers, executes when message successfully handled

Events
------

[](#events)

- `FRZB\Component\TransactionalMessenger\Event\DispatchSucceedEvent` executes when message is dispatched
- `FRZB\Component\TransactionalMessenger\Event\DispatchFailedEvent` executes when message is failure

Example
-------

[](#example)

```
