RouteTable¶
Таблица собранных маршрутов в порядке объявления. Неизменяемая.
Поиск не перебирает все маршруты. Маршруты без {…}, * и # лежат в хэш-таблице по точному
топику — как слушатели в symfony/event-dispatcher. Остальные разложены по литеральному началу
шаблона (shop.order у shop.order.{order_id}.paid): регулярное выражение проверяется только у тех,
чьё начало совпало с началом топика. Результат для топика запоминается.
Внутри таблица — массивы, а не объекты: так её целиком можно сохранить в кэш и прочитать без разбора. Объекты маршрутов создаются, только когда маршрут совпал с событием или их запросили.
- Full name:
\Selyusize\EventsRouter\Routing\RouteTable - This class is marked as final and can't be subclassed
- This class is a Final class
Methods¶
getRoutes¶
match¶
Все маршруты, чей шаблон подходит под топик, строго в порядке объявления.
В отличие от HTTP-роутера, возвращает все совпадения: у события может быть сколько угодно слушателей.
Parameters:
| Parameter | Type | Description |
|---|---|---|
$topic |
string |
Return Value:
пустой список, если слушателей нет