Symfony:从URL字符串

时间:2015-10-27 12:00:48

标签: php symfony url

给定一个URL字符串,如:

'my-route/{someId}/{someOption}'

我想得到一个像:

这样的数组
['someId', 'someOption']

显然我可以用一些正则表达式手动解析它,但我想知道是否可以使用一些Symfony(2.6+)组件或其他东西来做它...

因此,无论在我的代码中,我都可以执行以下操作:

$urlParamNames = $someComponent->getParamNamesFromUrl('my-route/{someId}/{someOption}');

注意:我知道这不是"标准" Symfony,我知道你通常会从注入动作的路径中获取参数作为参数等等......解释为什么我想要这个将是一个很长的故事,所以假设我需要完全该功能,没有其他建议/建议......

1 个答案:

答案 0 :(得分:4)

这是一个奇怪的请求。但如果你真的想要:

use Symfony\Component\Routing\RouteCompiler;
use Symfony\Component\Routing\Route;

$compiledRoute = RouteCompiler::compile(new Route('my-route/{someId}/{someOption}'));
var_dump($compiledRoute->getVariables());

输出:

array(2) { [0]=> string(6) "someId" [1]=> string(10) "someOption" }

不直接使用RouteCompiler

use Symfony\Component\Routing\Route;

$route = new Route('my-route/{someId}/{someOption}');
$compiledRoute = $route->compile();
var_dump($compiledRoute->getVariables());

如果您需要执行更多操作,请参阅compiler_class选项。