Contributed by
Nicolas Grekas
in #26284.
在 Symfony 4.1 中我们奋战在 Routing组件 以令它成为 最快的PHP路由,支持 路由path的翻译,令 路由配置更加智能,同时允许 对路由名称施加前缀.
Symfony 4.1 中添加的另一个路由功能是,当导入路由集合时,配置根路由结尾斜杠的能力。思考下列配置:
1 2 3 4 5 6 7 | # config/routes.yaml
_api_routes:
resource: '../src/Controller/Api'
type: 'annotation'
prefix: '/api'
# ... |
任何导入的路由,若使用了 /
作为其路径:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | use Symfony\Component\Routing\Annotation\Route;
class ApiController extends Controller
{
/**
* @Route("/", name="api_index")
*/
public function index()
{
// ...
}
// ...
} |
Symfony 会添加 /
路径到导入的前缀中,因此结果会是 /api/
的路径。这一行为是 Symfony 广为人知的限制,不可能让一个导入的根路由存在于一个没有结尾斜杠的前缀下。在 Symfony 4.1 中我们修复了这种限制,引入了全新的名为 trailing_slash_on_root
选项:
1 2 3 4 5 6 7 8 | # config/routes.yaml
_api_routes:
resource: '../src/Controller/Api'
type: 'annotation'
prefix: '/api'
# to maintain backward compatibility, its value is 'true' by default
# 为保持向后兼容,其值默认为 'true'
trailing_slash_on_root: false |