新在Symfoob娱乐下载ny 6.3:目标价值解析器
2023年4月21日·发表的哈维尔Eguiluz
ob娱乐下载Symfony 6.3是支持由:
Les-Tilleuls。鸡笼是70 + Symfony的团队专家可以ob娱乐下载帮助您设计、开发和修复您的项目。我们提供广泛的专业服务,包括开发、咨询、指导、培训和审计。我们还在JS高技能,去DevOps。我们是一个工人合作!
在Syob娱乐下载mfony中,参数值解析器允许注入某些值参数的控制器。例如,如果您type-hint任何控制器参数请求
类从HttpFoundation Symfony注入代ob娱乐下载表当前请求的对象。
ob娱乐下载Symfony提供了大量的内置解析器注入服务,会话,UID值,默认的PHP值等。在Symfony 6.3我们改善这个特性使它更强大。首先,我们介绍一个新的ValueResolver属性来显式地选择要使用的解析器。
考虑下面的例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
/ / src /控制器/ SessionController.php名称空间应用程序\控制器;使用ob娱乐下载\组件\HttpFoundation\响应;使用ob娱乐下载\组件\HttpFoundation\会话\SessionInterface;使用ob娱乐下载\组件\路由\注释\路线;类SessionController{#(路线(“/”))公共函数__invoke(SessionInterface美元会话= null):响应{/ /……}}
ob娱乐下载Symfony将调用所有的内置参数解析器的优先级,直到其中一个为这个观点提供了一个值。在这个例子中,SessionValueResolver
(优先级50
)将被称为前DefaultValueResolver
(优先级-100年
)。这就是为什么美元的会话
参数将要么当前会话
对象或一个零
价值。
如果你知道在您的应用程序中总会有一个会话,那么你可以这样做:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
/ /……使用ob娱乐下载\组件\HttpKernel\属性\ValueResolver;使用ob娱乐下载\组件\HttpKernel\控制器\ArgumentResolver\SessionValueResolver;类SessionController{#(路线(“/”))公共函数__invoke(# (ValueResolver(SessionValueResolver::类)]SessionInterface美元会话):响应{/ /……}}
新ValueResolver
属性允许您明确告诉Symfony哪个解析器应该使用这个参数的值。ob娱乐下载为方便起见,所有内置解析器的名字是他们FQCN(如。SessionValueResolver::类
)。
此外,我们添加了另一个地方新的AsTargetedValueResolver属性显式地创建解析器,只能被称为。考虑以下参数解析器将预订id
值到预订
对象:
1 2 3 4 5 6 7 8 9 10 11
/ / src / ValueResolver / IdentifierValueResolver.php名称空间应用程序\ValueResolver;使用ob娱乐下载\组件\HttpKernel\属性\AsTargetedValueResolver;使用ob娱乐下载\组件\HttpKernel\控制器\ValueResolverInterface;# (AsTargetedValueResolver (booking_id)]类BookingIdValueResolver实现了ValueResolverInterface{/ /……}
而不是让Symfony称之为解析器对所ob娱乐下载有参数的控制器# (AsTargetedValueResolver)
属性告诉Symfony只使用显式ob娱乐下载解析器如果它叫。因此,它只会在这种情况下使用:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
/ /……使用ob娱乐下载\组件\HttpKernel\属性\ValueResolver;类BookingController{#(路线(/预订/ {id}))公共函数显示(# (ValueResolver(“booking_id”))预订美元预订):响应{/ /……}}
发表在#生活在边缘
评论
Siarhei
说5月8日,2023年在19:28
# 1
神奇的!它将允许减少DI配置,同时保持各自的特点
评论都关门了。
以确保评论保持相关,他们关闭了旧的帖子。