Диспетчер событий совместим с PSR-14. В качестве событий используются классы.
https://github.com/yiisoft/event-dispatcher
Как вам?
yiisoft/event-dispatcher
- samdark
- Администратор
- Сообщения: 9489
- Зарегистрирован: 2009.04.02, 13:46
- Откуда: Воронеж
- Контактная информация:
yiisoft/event-dispatcher
Нравится Yii? Давайте сделаем его лучше!.
Re: yiisoft/event-dispatcher
Александр, добрый день. Спасибо за работу над новым фреймворком. Постараемся внести посильный вклад. Первые мысли при взгляде на компонент ниже.
https://github.com/yiisoft/event-dispat ... er.php#L49
Возможно стоит посмотреть в сторону SplObjectStorage
https://github.com/yiisoft/event-dispat ... er.php#L75
Рефлексия в райнтайме это нормально? На сколько мне известно - рефлексия дорогая операция. Какая задача у этого метода?
https://github.com/yiisoft/event-dispat ... r.php#L114
Эти методы проверок возможно вынести в утилиты пакета, чтобы их можно было переиспользовтаь.
https://github.com/yiisoft/event-dispat ... r.php#L169
Можно добавить проверку на существование метода, раз проверяем существование класса.
https://github.com/yiisoft/event-dispat ... er.php#L49
Возможно стоит посмотреть в сторону SplObjectStorage
https://github.com/yiisoft/event-dispat ... er.php#L75
Рефлексия в райнтайме это нормально? На сколько мне известно - рефлексия дорогая операция. Какая задача у этого метода?
https://github.com/yiisoft/event-dispat ... r.php#L114
Эти методы проверок возможно вынести в утилиты пакета, чтобы их можно было переиспользовтаь.
https://github.com/yiisoft/event-dispat ... r.php#L169
Можно добавить проверку на существование метода, раз проверяем существование класса.
- samdark
- Администратор
- Сообщения: 9489
- Зарегистрирован: 2009.04.02, 13:46
- Откуда: Воронеж
- Контактная информация:
Re: yiisoft/event-dispatcher
С какой целью?Возможно стоит посмотреть в сторону SplObjectStorage
В этом случае она не очень дорогая. Задача у этого метода дать возможность делать так:Рефлексия в райнтайме это нормально? На сколько мне известно - рефлексия дорогая операция. Какая задача у этого метода?
Код: Выделить всё
$provider->attach(function (AfterDocumentProcessed $event) {
$document = $event->getDocument();
// do something with document
});
Код: Выделить всё
$provider->attach(AfterDocumentProcessed::class, function (AfterDocumentProcessed $event) {
$document = $event->getDocument();
// do something with document
});
Так их вроде негде переиспользовать. Плюс они очень мелкие и написать то же в другом пакете лучше, чем выделять новый пакет. Иначе leftpad какой-то получится...Эти методы проверок возможно вынести в утилиты пакета, чтобы их можно было переиспользовтаь.
Сначала нужно сломать это через публичный API в тесте. Я пока не вижу как.Можно добавить проверку на существование метода, раз проверяем существование класса.
Нравится Yii? Давайте сделаем его лучше!.