PHPackages                             remessage/client - 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. remessage/client

ActiveLibrary

remessage/client
================

PHP client for Re Message

v0.8.3(4y ago)0301Apache-2.0PHPPHP &gt;=8.1

Since May 11Pushed 4y ago1 watchersCompare

[ Source](https://github.com/re-message/client)[ Packagist](https://packagist.org/packages/remessage/client)[ Docs](https://dev.remessage.ru/packages/client)[ RSS](/packages/remessage-client/feed)WikiDiscussions release Synced 1mo ago

READMEChangelogDependencies (15)Versions (21)Used By (1)

Re Message Client
=================

[](#re-message-client)

This package provides an object-oriented client level to interact with Re Message Core. The package architecture inspired by DBAL and Doctrine packages.

Client uses the specific version when sends messages to Core.

[![Package version](https://camo.githubusercontent.com/4a9ae232769e25079c0ff92685d82e21eb90cd7526d978d4aef099c07c626ce3/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f72656d6573736167652f636c69656e743f7374796c653d666f722d7468652d6261646765)](https://camo.githubusercontent.com/4a9ae232769e25079c0ff92685d82e21eb90cd7526d978d4aef099c07c626ce3/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f72656d6573736167652f636c69656e743f7374796c653d666f722d7468652d6261646765)[![Core version](https://camo.githubusercontent.com/0dd59d331c1bc98563e970f872719322ba9e8058a24b313327f25f2e5770b9be/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f6c6162656c3d436f726525323076657273696f6e266d6573736167653d312e3026636f6c6f723d626c7565267374796c653d666f722d7468652d6261646765)](https://camo.githubusercontent.com/0dd59d331c1bc98563e970f872719322ba9e8058a24b313327f25f2e5770b9be/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f6c6162656c3d436f726525323076657273696f6e266d6573736167653d312e3026636f6c6f723d626c7565267374796c653d666f722d7468652d6261646765)[![PHP Version](https://camo.githubusercontent.com/fe3b7f82f5e928dabd5e07fb8ada4a13f04a08ba3251da16fc1ac7733a493c30/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f6c6162656c3d504850266d6573736167653d253545382e3126636f6c6f723d626c7565267374796c653d666f722d7468652d6261646765)](https://camo.githubusercontent.com/fe3b7f82f5e928dabd5e07fb8ada4a13f04a08ba3251da16fc1ac7733a493c30/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f6c6162656c3d504850266d6573736167653d253545382e3126636f6c6f723d626c7565267374796c653d666f722d7468652d6261646765)

Requirements
------------

[](#requirements)

1. PHP 8.1+
2. Any `psr/http-client` compatible package to send HTTP requests
3. Any `psr/event-dispatcher` compatible package

    Configurator for `symfony/event-dispatcher` included in package

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

[](#installation)

You will need Composer to install:

`composer require remessage/client`

Usage
-----

[](#usage)

To create an instance of client, you need to choose transport. Now available only HTTP protocol transport. This transport can work with PSR 7, PSR 17, PSR 18 implementation. For example, `symfony/http-client`. We will use this package as http client in next examples.

Any transport requires message serializer from `remessage/message` package. You can use `RM\Standard\Message\Serializer\ChainMessageSerializer` class to pass serializers for each message type.

After creation of transport instance, you can use `RM\Component\Client\ClientFactory` or `RM\Component\Client\ClientConfigurator` to create an instance of client. We recommend using the configurator because he has simple settings. Factory has several setters that provide client customization.

In any case, you need to configure the following properties:

- The transport (it is required in constructor and `create()` method)

Also, you can configure these properties via factory:

- The hydrator, creates entity objects from response
- The repository registry, contains repositories created via factory
- The repository factory, creates repositories
- The authenticator factory, creates authenticators
- The authorization storage, stores the authorization data like token.
- The authorization resolver, finds credentials to pass together with request to core
- The config loader, loads the action config from resource with settings for authorization resolver

Example of creation client with HTTP transport:

```
use RM\Component\Client\ClientFactory;
use RM\Component\Client\Transport\HttpTransport;
use RM\Standard\Message\Serializer\ActionSerializer;
use RM\Standard\Message\Serializer\ChainMessageSerializer;
use RM\Standard\Message\Serializer\ErrorSerializer;
use RM\Standard\Message\Serializer\ResponseSerializer;
use Symfony\Component\HttpClient\Psr18Client;

$http = new Psr18Client();

$serializer = new ChainMessageSerializer();
$serializer->pushSerializer(new ActionSerializer());
$serializer->pushSerializer(new ErrorSerializer());
$serializer->pushSerializer(new ResponseSerializer());

$transport = new HttpTransport($http, $http, $http, $serializer);
$client = ClientFactory::create($transport)->build();
```

### Events

[](#events)

The package have some events to allow you to interact and to handle some cases. As example, we provided some event listeners.

Events:

- RM\\Component\\Client\\Event\\ErrorEvent
- RM\\Component\\Client\\Event\\SentEvent
- RM\\Component\\Client\\Event\\HydratedEvent

Event listeners:

- RM\\Component\\Client\\EventListener\\ThrowableSendListener - throws exception on error message and creates error event
- RM\\Component\\Client\\EventListener\\LazyLoadListener - provides lazy load for entity relations

How to add event listener (for Symfony EventDispatcher):

```
use RM\Component\Client\ClientFactory;
use RM\Component\Client\Event\SentEvent;
use RM\Component\Client\EventListener\ThrowableSendListener;
use RM\Component\Client\Transport\TransportInterface;
use Symfony\Component\EventDispatcher\EventDispatcher;

// transport initialization

/** @var TransportInterface $transport **/
$factory = ClientFactory::create($transport);
$client = $factory->build();

/** @var EventDispatcher $eventDispatcher */
$eventDispatcher = $factory->getEventDispatcher();
$eventDispatcher->addListener(SentEvent::class, new ThrowableSendListener($eventDispatcher));
```

We recommend registering **ALL** event listeners provided from the package.

Also, you can overwrite event dispatcher before building:

```
use RM\Component\Client\ClientFactory;
use RM\Component\Client\Event\SentEvent;
use RM\Component\Client\EventListener\ThrowableSendListener;
use RM\Component\Client\Transport\TransportInterface;
use Symfony\Component\EventDispatcher\EventDispatcher;

// transport initialization

$eventDispatcher = new EventDispatcher();

/** @var TransportInterface $transport **/
$client = ClientFactory::create($transport)
    ->setEventDispatcher($eventDispatcher)
    ->build()
;

$eventDispatcher->addListener(SentEvent::class, new ThrowableSendListener($eventDispatcher));
```

###  Health Score

27

—

LowBetter than 49% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity7

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity63

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~38 days

Recently: every ~29 days

Total

20

Last Release

1467d ago

PHP version history (4 changes)0.1.0PHP ^7.4

0.5.0PHP &gt;=7.4

0.7.0PHP &gt;=8.0

0.8.0PHP &gt;=8.1

### Community

Maintainers

![](https://www.gravatar.com/avatar/7c247169833cef4170f4431e5e8b28085b03fc8982e2c2a8594604d617e9c57a?d=identicon)[h1karo](/maintainers/h1karo)

---

Top Contributors

[![h1karo](https://avatars.githubusercontent.com/u/47826103?v=4)](https://github.com/h1karo "h1karo (226 commits)")

---

Tags

phpre-messageremessage

###  Code Quality

TestsPHPUnit

Code StylePHP CS Fixer

### Embed Badge

![Health badge](/badges/remessage-client/health.svg)

```
[![Health](https://phpackages.com/badges/remessage-client/health.svg)](https://phpackages.com/packages/remessage-client)
```

###  Alternatives

[sylius/sylius

E-Commerce platform for PHP, based on Symfony framework.

8.4k5.6M651](/packages/sylius-sylius)[shopware/platform

The Shopware e-commerce core

3.3k1.5M3](/packages/shopware-platform)[shopware/core

Shopware platform is the core for all Shopware ecommerce products.

595.2M386](/packages/shopware-core)[ec-cube/ec-cube

EC-CUBE EC open platform.

78527.0k1](/packages/ec-cube-ec-cube)[neos/flow

Flow Application Framework

862.0M451](/packages/neos-flow)[opensearch-project/opensearch-php

PHP Client for OpenSearch

15024.3M65](/packages/opensearch-project-opensearch-php)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
