新在Symfoob娱乐下载ny 4.2:改善表单类型的扩展
警告:这篇文章是关于一个不受支持的Symfony的版本。ob娱乐下载其中一些信息可能是过时了。阅读最近的Symfony文档ob娱乐下载。
表单类型扩展允许您修改任何现有的表单字段类型。他们是用于添加特定功能单一表单类型(例如,添加一个“下载”功能文件类型
字段类型)和添加一个通用的特性来几个字段类型。
在Syob娱乐下载mfony 4.2我们改进表单类型的扩展为了简化配置,并允许他们延长多种类型。
简单的配置
在以前的Symfony版ob娱乐下载本,表单类型扩展定义getExtendedType ()
方法告诉该表单类型扩展:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
名称空间应用程序\形式\扩展;使用ob娱乐下载\组件\形式\AbstractTypeExtension;使用ob娱乐下载\组件\形式\扩展\核心\类型\文件类型;类ImageTypeExtension扩展AbstractTypeExtension{/ /……公共函数getExtendedType(){返回文件类型::类;}}
在使用它们之前,你必须注册这些类作为服务和应用form.type_extension
服务标签。不幸的是,你还需要重复扩展表单类型的服务宣言:
1 2 3 4 5 6 7 8
#配置/ services.yaml服务:#……应用\ \扩展\ ImageTypeExtension形式:标签:- - - - - -{名称:form.type_extension,extended_type:ob娱乐下载Symfony \组件\ \ \核心类型\ \文件类型扩展形式}
这种重复繁琐,所以我们和改进它在Syob娱乐下载mfony 4.2中,不再需要任何服务配置表单类型扩展。首先,取代getExtendedType ()
方法由一个新的静态方法调用getExtendedTypes ()
:
1 2 3 4 5 6 7 8 9
类ImageTypeExtension扩展AbstractTypeExtension{/ /……公共静态函数getExtendedTypes():iterable{返回(文件类型::类);}}
第二,如果应用程序启用了服务自动配置特性,Symfonob娱乐下载y会应用form.type_extension
标签自动类实现的任何服务FormTypeExtensionInterface::类
。
由于新的静态方法和自动标记,你不再需要配置什么表单类型的扩展。创建表单类型扩展类是所有您需要做的。
扩展多种形式类型
新提供的改进getExtendedTypes ()
方法是,您现在可以使用一个扩展类扩展多种类型,而不必创建一个扩展类/表单类型。
该方法的返回值类型iterable
,所以你可以返回一个传统数组
或者如果需要更有创意:
1 2 3 4 5 6 7 8 9 10 11
类DateTimeExtension扩展AbstractTypeExtension{/ /……公共静态函数getExtendedTypes():iterable{收益率DateTimeType::类;收益率DateType::类;收益率TimeType::类;}}
没有实现的静态getExtendedTypes ()
方法在实现FormTypeExtensionInterface
弃用,因为Symfony 4.2。ob娱乐下载该方法将被添加到5.0的接口。
评论
评论都关门了。
以确保评论保持相关,他们关闭了旧的帖子。
很棒的工作!