Download the PHP package maximaster/bitrix-event-dispatcher without Composer
On this page you can find all versions of the php package maximaster/bitrix-event-dispatcher. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Table of contents
Download maximaster/bitrix-event-dispatcher
More information about maximaster/bitrix-event-dispatcher
Files in maximaster/bitrix-event-dispatcher
Download maximaster/bitrix-event-dispatcher
More information about maximaster/bitrix-event-dispatcher
Files in maximaster/bitrix-event-dispatcher
Vendor maximaster
Package bitrix-event-dispatcher
Short Description EventDispatcherInterface-совместимый диспетчер для регистрации обработки событий вызываемых через API Битрикс.
License MIT
Package bitrix-event-dispatcher
Short Description EventDispatcherInterface-совместимый диспетчер для регистрации обработки событий вызываемых через API Битрикс.
License MIT
Please rate this library. Is it a good library?
Informations about the package bitrix-event-dispatcher
maximaster/bitrix-event-dispatcher
Позволяет использовать symfony/event-dispatcher для регистрации обработчиков на события Битрикс, создавая при этом под каждое событие собственный класс.
Зачем?
- если ваше приложение использует и Symfony и Битрикс, то вы уже используете event-dispatcher и будет удобнее регистрировать обработчики единым образом;
- вы хотите работать с типизированными объектами событий, которые смогут предоставить удобный интерфейс к своим данным.
Как это работает
- запускается хит;
- в процессе кто-то требует сервис EventDispatcherInterface;
- контейнер создаёт этот сервис и благодаря штатному функционалу Symfony (RegisterListenersPass) добавляет в него слушателей (addListener);
- для тех вызовов addListener, которые регистрируют событие с интерфейсом \Maximaster\BitrixEvents\Contract\Event дополнительно вызывается код, который регистрирует обработчик события Битрикс. Это всегда ForwardListener
- Битрикс вызывает событие
- приходим в ForwardListener::__invoke;
- из аргументов пришедших в событие создаётся объект события из этого пакета;
- этот объект события отправляется в Symfony EventDispatcherInterface;
- штатный функционал Symfony отрабатывает и вызывает обработку события, которое было зарегистрировано на шаге 3.
Ограничения и нюансы
- Даже если вы регистрируете 100 обработчиков на одно и то же событие с помощью библиотеки, то в Битриксе будет зарегистрирован лишь один (ForwardListener) обработчик. Как следствие, отсортировать порядок выполнения обработчиков, которые сделаны в рамках этой библиотеки, однако, отсортировать их выполнения относительно других обработчиков невозможно;
- Если событие старого типа позволяет менять данные, то важно не только принимать в конструкторе данные по ссылке, но и по ссылке сохранять эти данные в свойство, иначе редактирование будет невозможно.
Доработка библиотеки
- установите devbox, либо самостоятельно
воспроизведите окружение, которое через него описано (см.
devbox.json
); - убедитесь, что линтеры не выдают ошибок (
devbox run lint
).
All versions of bitrix-event-dispatcher with dependencies
PHP Build Version
Package Version
Requires
php Version
^8.2
symfony/event-dispatcher Version ^7.0
marcosh/lamphpda Version ^3.0
maximaster/bitrix-value-objects Version ^1.0
symfony/event-dispatcher Version ^7.0
marcosh/lamphpda Version ^3.0
maximaster/bitrix-value-objects Version ^1.0
The package maximaster/bitrix-event-dispatcher contains the following files
Loading the files please wait ....