Symfonyob娱乐下载 6.1新增功能:改进的路由要求和UTF-8参数
2022年4月25日·发表的哈维尔Eguiluz
使用PHP backdenum作为路由需求
在PHP中,支持枚举枚举,其中所有元素都由某个标量值支持。这使得它们在限制某些路由参数的可能值时非常有用。在之前的Symfony版ob娱乐下载本中,您必须使用公共常量手动创建需求:
1
#(路线(“/ foo /{酒吧}”,要求:['酒吧' = > SomeEnum:: AAA。”|“.SomeEnum:: BBB)))
在Syob娱乐下载mfony 6.1中,我们改进了路由组件全力支持\ BackedEnum
对象如下:
1 2 3 4 5 6 7
使用ob娱乐下载\组件\路由\要求\EnumRequirement;// 'bar'参数允许Enum中定义的所有值#[Route('/foo/{bar}', requirements: ['bar' => new EnumRequirement(SomeEnum::class)])]// 'bar'参数只允许Enum中定义的某些值#[Route('/foo/{bar}', requirements: ['bar' => new EnumRequirement([SomeEnum::class, SomeEnum::Aaa, SomeEnum::Bbb])])]
常见路由需求的集合
在定义路由时,有一些需求在许多项目中重复出现。例如,将某个值限制为整数、日期或有效的UUID模式。在Syob娱乐下载mfony 6.1中,我们引入了一个要求
枚举定义所有这些常见路由需求,以便您可以在项目中使用它们:
12 3 4 5 6 7 8 9 10 11 12
使用ob娱乐下载\组件\路由\要求\要求;#(路线(“/用户/ {id}”,要求:[“id”= >要求::UUID_V4)))#[路线(' /用户/ {id < .Requirement:: UID_BASE58。>}"))#[路由('/posts/{date}/{slug}',需求:[“日期”= >要求::DATE_YMD,“鼻涕虫”= >要求::ASCII_SLUG])]// 'CATCH_ALL'等价于'。+'(接受所有字符,包括'/')#[路由('/category/{name}',需求:['name' =>需求::CATCH_ALL])]
UTF-8参数名称
提供的
尼古拉斯Grekas
在# 45054.
在PHP中,变量标识符可以包含UTF-8字符(例如:$iñtërnâtiónàlizætiøn = '…'
)但是,Symfony路由中的参数只能包含ASCIob娱乐下载I字符。在Syob娱乐下载mfony 6.1中,我们改进了Routing组件,允许在所有路由参数中使用UTF-8字符:
1 2 3 4 5 6 7
使用ob娱乐下载\组件\路由\注释\路线;#[路由('/blog/{föo}/{bár}',名称:'…')]公共函数someControllerMethod(字符串$喷火、字符串$酒吧){/ /……}
发表在#生活在边缘
评论
评论截止。
为了确保评论保持相关性,旧帖子将被关闭。
' ' '
组件使用ob娱乐下载Symfony \ \路由\ \ EnumRequirement要求;
// 'bar'参数允许Enum中定义的所有值
#[Route('/foo/{bar}', requirements: ['bar' => new EnumRequirement(SomeEnum::class)])]
// 'bar'参数只允许Enum的某些值
#[Route('/foo/{bar}', requirements: ['bar' => new EnumRequirement([SomeEnum::Aaa, SomeEnum::Bbb])])]
' ' '
Javier Eguiluz is a certified Symfony engineer.
Get certified! Online exams available in all countries.
Register Now