PHPackages                             maximaster/bitrix-event-dispatcher - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. maximaster/bitrix-event-dispatcher

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

maximaster/bitrix-event-dispatcher
==================================

EventDispatcherInterface-совместимый диспетчер для регистрации обработки событий вызываемых через API Битрикс.

v0.1.1(1y ago)0351MITPHPPHP ^8.2

Since Jul 15Pushed 1y ago2 watchersCompare

[ Source](https://github.com/maximaster/bitrix-event-dispatcher)[ Packagist](https://packagist.org/packages/maximaster/bitrix-event-dispatcher)[ RSS](/packages/maximaster-bitrix-event-dispatcher/feed)WikiDiscussions master Synced 2d ago

READMEChangelogDependencies (5)Versions (3)Used By (1)

maximaster/bitrix-event-dispatcher
==================================

[](#maximasterbitrix-event-dispatcher)

Позволяет использовать [symfony/event-dispatcher](https://packagist.org/packages/symfony/event-dispatcher)для регистрации обработчиков на события Битрикс, создавая при этом под каждое событие собственный класс.

Зачем?
------

[](#зачем)

1. если ваше приложение использует и Symfony и Битрикс, то вы уже используете event-dispatcher и будет удобнее регистрировать обработчики единым образом;
2. вы хотите работать с типизированными объектами событий, которые смогут предоставить удобный интерфейс к своим данным.

Как это работает
----------------

[](#как-это-работает)

1. запускается хит;
2. в процессе кто-то требует сервис EventDispatcherInterface;
3. контейнер создаёт этот сервис и благодаря штатному функционалу Symfony (RegisterListenersPass) добавляет в него слушателей (addListener);
4. для тех вызовов addListener, которые регистрируют событие с интерфейсом \\Maximaster\\BitrixEvents\\Contract\\Event дополнительно вызывается код, который регистрирует обработчик события Битрикс. Это всегда ForwardListener
5. Битрикс вызывает событие
6. приходим в ForwardListener::\_\_invoke;
7. из аргументов пришедших в событие создаётся объект события из этого пакета;
8. этот объект события отправляется в Symfony EventDispatcherInterface;
9. штатный функционал Symfony отрабатывает и вызывает обработку события, которое было зарегистрировано на шаге 3.

Ограничения и нюансы
--------------------

[](#ограничения-и-нюансы)

1. Даже если вы регистрируете 100 обработчиков на одно и то же событие с помощью библиотеки, то в Битриксе будет зарегистрирован лишь один (ForwardListener) обработчик. Как следствие, отсортировать порядок выполнения обработчиков, которые сделаны в рамках этой библиотеки, однако, отсортировать их выполнения относительно других обработчиков невозможно;
2. Если событие старого типа позволяет менять данные, то важно не только принимать в конструкторе данные по ссылке, но и по ссылке сохранять эти данные в свойство, иначе редактирование будет невозможно.

Доработка библиотеки
--------------------

[](#доработка-библиотеки)

- установите [devbox](https://www.jetify.com/devbox), либо самостоятельно воспроизведите окружение, которое через него описано (см. `devbox.json`);
- убедитесь, что линтеры не выдают ошибок (`devbox run lint`).

###  Health Score

25

—

LowBetter than 35% of packages

Maintenance33

Infrequent updates — may be unmaintained

Popularity7

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity44

Maturing project, gaining track record

 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 ~43 days

Total

2

Last Release

675d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/ab1bbc009e4fa562e3c976d1d1be7b5a61e2199b28e43828632eb8c72f827631?d=identicon)[mlavrinenko](/maintainers/mlavrinenko)

---

Top Contributors

[![mlavrinenko](https://avatars.githubusercontent.com/u/15840214?v=4)](https://github.com/mlavrinenko "mlavrinenko (3 commits)")

###  Code Quality

Code StylePHP CS Fixer

### Embed Badge

![Health badge](/badges/maximaster-bitrix-event-dispatcher/health.svg)

```
[![Health](https://phpackages.com/badges/maximaster-bitrix-event-dispatcher/health.svg)](https://phpackages.com/packages/maximaster-bitrix-event-dispatcher)
```

###  Alternatives

[friendsofphp/php-cs-fixer

A tool to automatically fix PHP code style

13.5k251.2M25.2k](/packages/friendsofphp-php-cs-fixer)[easycorp/easyadmin-bundle

Admin generator for Symfony applications

4.3k17.9M388](/packages/easycorp-easyadmin-bundle)[matomo/matomo

Matomo is the leading Free/Libre open analytics platform

21.7k38.9k](/packages/matomo-matomo)[phpro/soap-client

A general purpose SoapClient library

8896.1M54](/packages/phpro-soap-client)[civicrm/civicrm-core

Open source constituent relationship management for non-profits, NGOs and advocacy organizations.

751291.4k43](/packages/civicrm-civicrm-core)[blackfire/player

A powerful web crawler and web scraper with Blackfire support

49617.1k](/packages/blackfire-player)

PHPackages © 2026

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