Symfony2最佳实践:路由占位符vs.查询参数


Symfony2 best practice: route placeholder vs. query parameters

是否有一种推荐的方式来选择如何将数据提供给控制器?

通常我必须决定是否要使用路由占位符,如:

/**
 * @Route("/hello/{name}", name="hello")
 */
public function indexAction($name)
{
    return new Response('<html><body>Hello '.$name.'!</body></html>');
}

用法:/hallo/Thorsten

或者使用查询参数($_GET):

/**
 * @Route("/hello")
 */
public function indexAction()
{
    $request = Request::createFromGlobals();
    $name = $request->get('name');
    return new Response('<html><body>Hello '.$name.'!</body></html>');
}

用法:/hallo?name=Thorsten

我不认为这有一个规则,这要看情况。

值是一个可能包含空格或奇怪字符或符号或斜杠的通用字符串吗?我会使用查询字符串,它广泛用于搜索,分页等。

值是否在一组预定义的"单词"或"数字"中,如类别、用户id、博客文章段码等?我将使用路径来简化和遵循SEO规则。

看这里更多的信息,我的意思是:http://googlewebmastercentral.blogspot.co.nz/2015/04/better-presentation-of-urls-in-search.html