RouteGroup¶
Группа маршрутов: общий префикс топика и общие middleware.
Аналог RouteCollectorProxy в Slim. Хранит свои маршруты и вложенные группы
в порядке объявления. Middleware группы оборачивают middleware каждого её маршрута,
внешняя группа оборачивает вложенную. add() можно вызвать после объявления
маршрутов — так обычно и пишут:
$events->group('order', static function (RouteGroup $group): void {
$group->listen('created', SendConfirmationEmail::class);
$group->listen('{order_id}.paid', MarkOrderPaid::class);
})
->add(SetUserData::class)
->add(EventLogger::class); // выполнится первым
- Full name:
\Selyusize\EventsRouter\Routing\RouteGroup - This class is marked as final and can't be subclassed
- This class implements:
\Selyusize\EventsRouter\Contract\Routing\RouteGroupInterface - This class is a Final class
Methods¶
listen¶
Повесить одного слушателя на шаблон топика.
Несколько слушателей на одно событие — несколько вызовов listen().
Вызываются они строго в порядке объявления, приоритетов нет.
Если шаблон вместе с префиксами групп записан с ошибкой — InvalidTopicPattern. Если класс слушателя не найден или не реализует ListenerInterface — InvalidRoute.
Parameters:
| Parameter | Type | Description |
|---|---|---|
$pattern |
string | шаблон относительно префикса группы; в группе может быть пустым |
$listener |
string |
group¶
Группа маршрутов с общим префиксом и общими middleware.
Пустой префикс — группа только ради общих middleware.
Parameters:
| Parameter | Type | Description |
|---|---|---|
$prefix |
string | |
$routes |
callable |
add¶
Добавить middleware всем маршрутам группы, включая вложенные группы.
Добавленный последним выполняется первым, как в Slim. Если класс middleware не найден или не реализует MiddlewareInterface — InvalidRoute.
Parameters:
| Parameter | Type | Description |
|---|---|---|
$middleware |
\Selyusize\EventsRouter\Contract\Core\MiddlewareInterface|string |
getPrefix¶
Префикс группы, как он передан в group().
getMiddleware¶
Middleware этой группы в порядке выполнения: первым идёт добавленный последним.
public getMiddleware(): list<class-string<\Selyusize\EventsRouter\Contract\Core\MiddlewareInterface>|\Selyusize\EventsRouter\Contract\Core\MiddlewareInterface>
Middleware внешних групп сюда не входят.
getChildren¶
Маршруты и вложенные группы в порядке объявления.
join¶
Соединить части топика через точку, пропуская пустые.
- This method is static. Parameters:
| Parameter | Type | Description |
|---|---|---|
$parts |
string |