我有一个大型的Catalyst应用程序,想要获取它支持的所有端点的列表(如果可以告诉我请求方法,则可以得到奖励积分)。有什么简单的方法可以让Catalyst列出它们?
答案 0 :(得分:0)
Catalyst不知道完整的路径集。真正的分发路径是动态解析的,它通过DispatchType类进行迭代,直到一个人对match
的调用做出满意的响应为止。
debug选项对控制器允许的所有可能性进行一次枚举。如果要对此进行干预,则必须查看Catalyst::Dispatcher::_display_action_tables
这是一种遍历树的算法,它遍历在'/'处找到的每条路由,并遵循$controller->actions
返回的每条后续路由。这不容易阅读,但是可以想象实现一个_display_action_tables版本,该版本不仅可以打印到表格,还可以执行其他操作。然后以$ c作为参数在实时应用程序中调用它,看看会发生什么!