PHPackages                             mepihindeveloper/php-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. mepihindeveloper/php-event-dispatcher

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

mepihindeveloper/php-event-dispatcher
=====================================

Component for working with events

v1.0.0(4y ago)02MITPHPPHP &gt;=7.4

Since Feb 22Pushed 4y ago1 watchersCompare

[ Source](https://github.com/mepihindeveloper/php-event-dispatcher)[ Packagist](https://packagist.org/packages/mepihindeveloper/php-event-dispatcher)[ RSS](/packages/mepihindeveloper-php-event-dispatcher/feed)WikiDiscussions stable Synced today

READMEChangelog (1)Dependencies (4)Versions (3)Used By (0)

php-event-dispatcher
====================

[](#php-event-dispatcher)

[![release](https://camo.githubusercontent.com/b37449ff72a51f34821850770f452954e852ee5010aefe69d4585ce940fa3137/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f762f72656c656173652f6d65706968696e646576656c6f7065722f7068702d6576656e742d646973706174636865723f6c6162656c3d76657273696f6e)](https://camo.githubusercontent.com/b37449ff72a51f34821850770f452954e852ee5010aefe69d4585ce940fa3137/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f762f72656c656173652f6d65706968696e646576656c6f7065722f7068702d6576656e742d646973706174636865723f6c6162656c3d76657273696f6e)[![Packagist Version](https://camo.githubusercontent.com/c4041eec8fd653509b684775517321dacf0f9a97df6083a242b1f532cf813fc0/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6d65706968696e646576656c6f7065722f7068702d6576656e742d64697370617463686572)](https://packagist.org/packages/mepihindeveloper/php-event-dispatcher)[![PHP Version Require](https://camo.githubusercontent.com/c956719369fc2b9576cfd756e479133ee291f0347eff4dd1343f5a176de6b7bf/687474703a2f2f706f7365722e707567782e6f72672f6d65706968696e646576656c6f7065722f7068702d6576656e742d646973706174636865722f726571756972652f706870)](https://packagist.org/packages/mepihindeveloper/php-event-dispatcher)[![license](https://camo.githubusercontent.com/de0c1754da5ddd75bea6a947c3e13906a6c27d2fa66d5337a54afb799b04b491/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f6d65706968696e646576656c6f7065722f7068702d6576656e742d64697370617463686572)](https://camo.githubusercontent.com/de0c1754da5ddd75bea6a947c3e13906a6c27d2fa66d5337a54afb799b04b491/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f6d65706968696e646576656c6f7065722f7068702d6576656e742d64697370617463686572)

[![build](https://github.com/mepihindeveloper/php-event-dispatcher/actions/workflows/php.yml/badge.svg?branch=stable)](https://github.com/mepihindeveloper/php-event-dispatcher/actions/workflows/php.yml/badge.svg?branch=stable)[![codecov](https://camo.githubusercontent.com/83f771fe2a746d57cb9988dbec035d623668904d76b173c2a18a2cba55eea177/68747470733a2f2f636f6465636f762e696f2f67682f6d65706968696e646576656c6f7065722f7068702d6576656e742d646973706174636865722f6272616e63682f737461626c652f67726170682f62616467652e7376673f746f6b656e3d3336505037564b484b47)](https://codecov.io/gh/mepihindeveloper/php-event-dispatcher)

Компонент для работы с событиями и слушателями

Структура
=========

[](#структура)

```
src/
--- exceptions/
------ EventNotFoundException.php
------ ListenerNotFoundException
--- interfaces/
------ ListenerInterface.php
--- Event.php
--- EventDispatcher.php
--- ListenerProvider.php

```

В директории `interfaces` хранятся необходимые интерфейсы, которые необходимо имплементировать в при реализации собственного класса `Listener`. Класс `Listener` выступает в качестве слушателя события и должен реализовать метод `process`. В директории `exceptions` хранятся необходимые исключения. Исключение `EventNotFoundException` необходимо для идентификации ошибки поиска события (когда событие не было найдено), аналогично и для `ListenerNotFoundException`.

Класс `Event` реализует само событие. Собственные события должны наследоваться от класса `Event`.

Класс `EventDispatcher` реализует диспетчер событий, который работает через `ListenerProvider`, выступая посредником.

Класс `ListenerProvider` реализует поставщика слушателей, где происходят все операции со слушателями и событиями.

Примерная реализация событий и слушателей:

```
