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)0331MITPHPPHP ^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 1mo 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

26

—

LowBetter than 43% of packages

Maintenance36

Infrequent updates — may be unmaintained

Popularity7

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity43

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

619d 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

[phpro/soap-client

A general purpose SoapClient library

8885.6M46](/packages/phpro-soap-client)[winzou/state-machine

A very lightweight yet powerful PHP state machine

52113.7M18](/packages/winzou-state-machine)[civicrm/civicrm-core

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

728272.9k17](/packages/civicrm-civicrm-core)[pugx/autocompleter-bundle

Add an autocomplete type to forms

93861.6k3](/packages/pugx-autocompleter-bundle)[symfony/ai-platform

PHP library for interacting with AI platform provider.

51927.7k134](/packages/symfony-ai-platform)[netgen/layouts-core

Netgen Layouts enables you to build and manage complex web pages in a simpler way and with less coding. This is the core of Netgen Layouts, its heart and soul.

3689.4k10](/packages/netgen-layouts-core)

PHPackages © 2026

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