如何获得所有CakePHP路由的列表?

丹尼尔克

我正在尝试检索app / Config / routes.php中包含的所有路由的列表,并将其显示在管理页面上。我能够检索控制器列表使用$controllers = App::objects('controller');,我想知道是否有可能为路线做同样的。

我已经尝试按照下面的代码使用子字符串,但是想到的问题是注释掉了路由,空格和路由的变体,例如到外部资源的链接。我现在正在考虑使用php的令牌生成器,但我想知道CakePHP是否内置了一个简单而优雅的解决方案。

$source = file_get_contents(APP . 'Config/routes.php');

$startPos = stripos($source, 'Router::connect(');

$routes = array();

while ($startPos !== false) {

    $endPos = stripos($source, ';', $startPos + 15);

    if($endPos !== false) {

        $route = substr($source, $startPos, $endPos - $startPos);

        $urlStart = stripos($route, "'");
        if($urlStart !== false) {
            $urlEnd = stripos($route, "'", $urlStart + 1);
            $url = substr($route, $urlStart + 1, $urlEnd - $urlStart - 1);
            $routes[] = array('route'=>$route, 'url'=>$url);

        }

        $startPos = stripos($source, 'Router::connect(', $endPos + 1);
    }
}
丹尼尔克

感谢@ndm的回答,对于任何试图检索CakePHP路由器解析的路由列表的人(即在app / Config / routes.php内部)以及用于任何插件的人,请使用Router::$routes根据您的应用程序输出可以是CakeRoute对象,RedirectRoute对象或PluginShortRoute对象。

$routes = Router::$routes;
echo('<pre>'); // Readable output
var_dump($routes);
echo('</pre>');

例如,Router::connect('/', array('controller' => 'pages', 'action' => 'display', 'home'));显示的路线

object(CakeRoute)#16 (7)
{
  ["keys"] => array(0) {}
  ["options"] => array(0) {}
  ["defaults"] => array(4)
  {
    ["controller"] => string(5) "pages"
    ["action"] => string(7) "display"
    [0] => string(4) "home"
    ["plugin"] => NULL
  }
  ["template"] => string(1) "/"
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何获得列表列表的所有迭代?

来自分类Dev

如何获得Whoosh索引中所有术语的列表?

来自分类Dev

如何获得所有可用的dbus属性的列表?

来自分类Dev

如何获得软件包所有版本的列表?

来自分类Dev

如何获得列表中包含其字段的所有模型?

来自分类Dev

我如何获得Mathematica中所有分布的列表

来自分类Dev

如何使用Selenium Webdriver获得所有列表项?

来自分类Dev

我如何获得所有打开程序的列表

来自分类Dev

您如何获得所有启动服务的列表?

来自分类Dev

如何获得EF 5中所有实体的列表?

来自分类Dev

如何获得所有用户的关注列表

来自分类Dev

如何获得所有可用的dbus属性的列表?

来自分类Dev

如何获得 Redditor 列表发布的所有提交和评论?

来自分类Dev

如何获得包含另一个列表中元素的所有可能组合的列表?

来自分类Dev

如何在Python中获得1到n个列表列表的所有组合

来自分类Dev

如何获得将长度为n的列表划分为m个子列表的所有可能组合

来自分类Dev

如何获得至少包含另一个列表的所有值的列表?

来自分类Dev

CakePHP 3.x:到插件的所有路由

来自分类Dev

路由CakePHP中除某些参数外的所有参数

来自分类Dev

如何分区Java列表以获得具有特定条件的列表和其他所有相交的列表?

来自分类Dev

如何获得具有相同序列号的表中所有元素的列表?

来自分类Dev

如何获得我的discord机器人所具有的所有角色的列表?

来自分类Dev

如何获得所有目录和文件的列表,每行都有绝对路径?

来自分类Dev

如何获取cakephp中控制器内部的所有功能的列表

来自分类Dev

我如何在cakephp中获取控制器内部所有功能的列表

来自分类Dev

如何在Ember.js 3.18中获取应用程序的所有路由列表?

来自分类Dev

如何获得一个列表的所有排序,以使该列表等于另一个列表?

来自分类Dev

如何获得一个列表的所有排序,以使该列表等于另一个列表?

来自分类Dev

如何获得db2uw中所有模式的数据库中存储的所有函数的列表?

Related 相关文章

  1. 1

    如何获得列表列表的所有迭代?

  2. 2

    如何获得Whoosh索引中所有术语的列表?

  3. 3

    如何获得所有可用的dbus属性的列表?

  4. 4

    如何获得软件包所有版本的列表?

  5. 5

    如何获得列表中包含其字段的所有模型?

  6. 6

    我如何获得Mathematica中所有分布的列表

  7. 7

    如何使用Selenium Webdriver获得所有列表项?

  8. 8

    我如何获得所有打开程序的列表

  9. 9

    您如何获得所有启动服务的列表?

  10. 10

    如何获得EF 5中所有实体的列表?

  11. 11

    如何获得所有用户的关注列表

  12. 12

    如何获得所有可用的dbus属性的列表?

  13. 13

    如何获得 Redditor 列表发布的所有提交和评论?

  14. 14

    如何获得包含另一个列表中元素的所有可能组合的列表?

  15. 15

    如何在Python中获得1到n个列表列表的所有组合

  16. 16

    如何获得将长度为n的列表划分为m个子列表的所有可能组合

  17. 17

    如何获得至少包含另一个列表的所有值的列表?

  18. 18

    CakePHP 3.x:到插件的所有路由

  19. 19

    路由CakePHP中除某些参数外的所有参数

  20. 20

    如何分区Java列表以获得具有特定条件的列表和其他所有相交的列表?

  21. 21

    如何获得具有相同序列号的表中所有元素的列表?

  22. 22

    如何获得我的discord机器人所具有的所有角色的列表?

  23. 23

    如何获得所有目录和文件的列表,每行都有绝对路径?

  24. 24

    如何获取cakephp中控制器内部的所有功能的列表

  25. 25

    我如何在cakephp中获取控制器内部所有功能的列表

  26. 26

    如何在Ember.js 3.18中获取应用程序的所有路由列表?

  27. 27

    如何获得一个列表的所有排序,以使该列表等于另一个列表?

  28. 28

    如何获得一个列表的所有排序,以使该列表等于另一个列表?

  29. 29

    如何获得db2uw中所有模式的数据库中存储的所有函数的列表?

热门标签

归档