首页 > 解决方案 > 如何枚举 Catalyst 应用程序中的所有端点?

问题描述

我有一个大型 Catalyst 应用程序,想要获取它支持的所有端点的列表(如果它可以告诉我请求方法是否可以加分)。有没有一些简单的方法可以让 Catalyst 列出它们?

标签: perlcatalyst

解决方案


Catalyst 不知道完整的路径集。真正的调度路径是动态解析的,遍历 DispatchType 类,直到对match.

调试选项一次性枚举控制器允许的所有可能性。如果你想干涉这个,你必须看看Catalyst::Dispatcher::_display_action_tables

这是一种树遍历算法,它遍历它在“/”处找到的每条路线,并遵循每个$controller->actions返回的后续路线。它不容易阅读,但是您可以想象实现一个 _display_action_tables 版本,它不仅可以打印到表格,还可以执行其他操作。然后使用 $c 作为参数在实时应用程序中调用它,看看会发生什么!


推荐阅读