Как я могу перечислить все конечные точки в приложении Catalyst? - PullRequest
0 голосов
/ 01 марта 2019

У меня есть большое приложение Catalyst, и я хочу получить список всех конечных точек, которые он поддерживает (бонусные баллы, если он может сказать мне, если метод запроса).Есть ли какой-нибудь простой способ попросить Catalyst перечислить их?

1 Ответ

0 голосов
/ 02 апреля 2019

Catalyst не знает полный набор путей.Истинные пути отправки разрешаются динамически, итеративно перебирая классы DispatchType до тех пор, пока один из них не ответит положительно на вызов match.

Опция отладки выполняет однократное перечисление всех возможностей, которые позволяют ваши контроллеры.Если вы хотите помешать этому, вы должны взглянуть на Catalyst::Dispatcher::_display_action_tables

. Это алгоритм обхода дерева, который перебирает каждый маршрут, который он находит в '/', и следует каждому последующему маршруту, который возвращает $controller->actions.Это нелегко читать, но вы могли бы реализовать версию _display_action_tables, которая не просто печатает в таблицу, но и делает что-то другое.Затем вызовите его в живом приложении с аргументом $ c и посмотрите, что получится!

...