Routes 使用Zend Framework 2列出来自应用程序的所有路由
如何使用Zend Framework轻松列出我们在应用程序中定义的所有路由2 我所说的“路线”是指以下定义的路线:Routes 使用Zend Framework 2列出来自应用程序的所有路由,routes,zend-framework2,Routes,Zend Framework2,如何使用Zend Framework轻松列出我们在应用程序中定义的所有路由2 我所说的“路线”是指以下定义的路线: module/[moduleName]/config/module.config.php 在 我需要列出所有的配置,但我不知道如何轻松地做到这一点,文档和论坛现在也帮不了我。你可以找到完整的(合并的)配置或转储路由器本身。无法导出所有路由对象,因此我不得不让您失望 要获取完整配置,请从服务定位器获取: // $sl instanceof Zend\ServiceManager\Se
module/[moduleName]/config/module.config.php
在
我需要列出所有的配置,但我不知道如何轻松地做到这一点,文档和论坛现在也帮不了我。你可以找到完整的(合并的)配置或转储路由器本身。无法导出所有路由对象,因此我不得不让您失望
要获取完整配置,请从服务定位器获取:
// $sl instanceof Zend\ServiceManager\ServiceManager
$config = $sl->get('COnfig');
$routes = $config['router']['routes'];
如果您希望仅出于调试目的查看所有路由,可以在路由器对象上使用var\u dump
或类似工具:
// $sl instanceof Zend\ServiceManager\ServiceManager
$router = $sl->get('Router');
var_dump($router);
要获取路由实例,您可以使用route plugin manager自己构建路由,但我不确定这是您想要的方式…要获取我使用的所有路由
和控制台命令以获取路由转储:
php vendor/bin/zf.php config list | grep routes
对于Windows用户(未测试):
我需要区分每个模块的路由,以便我们可以在不同的情况下分别使用BjyAuthorize的ACL设置 虽然有不止一种方法可以做到这一点,如所示的读取所有路由(变量已更改):
您可以使用以下代码片段从路由器获取路由列表$mvcEvent
是Zend\Mvc\mvcEvent
的一个实例,TreeRouteStack
是Zend\Router\Http\TreeRouteStack
$router=$mvcEvent->getRouter();
$routes=(数组)$router->getRoutes();
$routes=数组_值($routes);
$routes=计数($routes)>0?数组_键($routes[0]):[];
这对我帮助很大。答案的第一部分起了作用;)我之所以需要这个,是因为我在第一层得到了一个路由,它是可变的,并且基于用户创建的对象。(例如mywebsite.com/user-object-name,我必须通过验证器验证我的一条路由是否已经使用了用户对象名)。谢谢注意:其他(控制台)路由可在$config['console']['router']['routes']下找到;路由器是TreeRouteStack的一个实例。您可以通过$router->getRoutes())
获得所有路由。这将导致分层打印
php vendor/bin/zf.php config list | grep routes
php vendor/bin/zf.php config list | findstr /R /C:"[routes]"