首页
/ Symfony UX 2.24.0 版本发布:NPM 包支持与功能增强

Symfony UX 2.24.0 版本发布:NPM 包支持与功能增强

2025-07-08 03:13:24作者:牧宁李

Symfony UX 是 Symfony 框架的一个扩展组件集合,旨在简化现代 Web 开发中常见的前端交互功能的集成。它通过提供一系列与 Symfony 无缝集成的工具和组件,帮助开发者更高效地构建交互式 Web 应用。UX 组件涵盖了从前端表单增强到实时组件等各种功能,大大提升了开发体验。

主要更新亮点

NPM 包支持正式发布

Symfony UX 2.24.0 版本最重要的变化是开始将需要 JavaScript 的 UX 包发布到 NPM。这一变化为高级用户提供了更大的灵活性,使他们能够将 JavaScript 依赖项与 PHP 依赖项解耦。不过,官方仍然推荐大多数用户继续使用 Symfony Flex 作为主要的安装方式。

地图组件(Map)功能增强

地图组件在此版本中获得了多项重要改进:

  1. 标记图标自定义功能:开发者现在可以完全自定义地图标记的图标,为地图应用带来更丰富的视觉表现力。

  2. 元素移除功能:新增了从地图上移除标记、多边形和折线的能力,使动态地图交互更加灵活。

  3. 文档与测试改进:对"与地图交互"部分进行了优化,使开发者更容易理解和使用高级功能。同时改进了渲染器测试,采用快照测试使维护更加容易。

Twig 组件改进

Twig 组件系统也获得了一些重要更新:

  1. 注释行支持:新增了对 Twig 组件中注释行的最小支持,提高了代码的可读性和可维护性。

  2. 32位系统兼容性修复:解决了 ComponentTokenParser 在 32 位系统上的兼容性问题。

  3. Twig 3.21 适配:修复了与 Twig 3.21 版本相关的弃用警告,确保组件在未来版本中继续正常工作。

Live 组件优化

实时组件(Live Components)方面也有多项改进:

  1. 依赖管理调整:将 symfony/property-info 移动到 require 部分,确保必要的依赖被正确安装。

  2. 默认选择值修复:修正了带有首选选项时默认选择值的行为,使表单处理更加可靠。

  3. 文档增强:新增了关于如何从 Twig 向事件监听器传递值的文档,帮助开发者更好地利用组件功能。

其他组件更新

  • 自动完成组件(Autocomplete):修复了查询构建器代码示例,增加了对 EnumType 的精确支持,并改进了错误处理。

  • Turbo 组件:新增了 Twig 扩展用于 meta 标签管理,改进了事件源选项传递功能。

  • 图标组件(Icons):改进了 SVG 图标的兼容性,添加了 xmlns 属性。

  • 通知组件(Notify):扩展了通知选项,提供了更灵活的通知定制能力。

技术实现细节

JavaScript 包管理重构

为了实现 NPM 发布,项目进行了多项底层重构:

  1. 包规范化:统一了所有 package.json 文件的结构,为 NPM 发布做好准备。

  2. 构建系统改进:确保无论是通过 Composer 安装的 vendor 版本还是直接从 NPM 安装的版本,都能在 Encore 应用中正常工作。

  3. 自动化发布流程:新增了工作流来自动将 JS 包发布到 NPM,提高了发布效率和可靠性。

测试与质量保证

版本发布过程中进行了全面的测试保障:

  1. 跨环境测试:增加了对最低稳定性为 dev 的环境测试,确保在各种配置下都能正常工作。

  2. 快照测试应用:在地图组件中引入快照测试,使渲染器测试更易于维护。

  3. TypeScript 验证:增加了对 TypeScript 代码有效性的检查,提高了代码质量。

开发者体验改进

Symfony UX 2.24.0 在开发者体验方面做了多项优化:

  1. 文档增强:多个组件都补充或修正了文档,包括修复链接、添加示例和说明重要功能的使用方法。

  2. 错误处理改进:如自动完成组件中改进了对错误请求的处理,提供更清晰的错误反馈。

  3. 弃用警告处理:及时修复了与 Twig 新版本相关的弃用警告,确保平滑升级。

总结

Symfony UX 2.24.0 版本通过引入 NPM 包支持,为高级用户提供了更大的灵活性,同时继续增强各个组件的功能和稳定性。地图组件的标记自定义和元素管理功能、Twig 组件的注释支持和兼容性改进,以及 Live 组件的表单处理优化,都使这个版本成为值得升级的选择。

对于大多数用户,仍然推荐使用 Symfony Flex 进行安装,而需要更精细控制 JavaScript 依赖关系的团队现在可以选择通过 NPM 直接管理 UX 的 JavaScript 部分。这一变化体现了 Symfony 生态系统对现代前端开发工作流的适应和支持。

登录后查看全文
热门项目推荐

项目优选

收起
docsdocs
OpenHarmony documentation | OpenHarmony开发者文档
Dockerfile
139
1.91 K
kernelkernel
deepin linux kernel
C
22
6
nop-entropynop-entropy
Nop Platform 2.0是基于可逆计算理论实现的采用面向语言编程范式的新一代低代码开发平台,包含基于全新原理从零开始研发的GraphQL引擎、ORM引擎、工作流引擎、报表引擎、规则引擎、批处理引引擎等完整设计。nop-entropy是它的后端部分,采用java语言实现,可选择集成Spring框架或者Quarkus框架。中小企业可以免费商用
Java
8
0
ohos_react_nativeohos_react_native
React Native鸿蒙化仓库
C++
192
273
RuoYi-Vue3RuoYi-Vue3
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
923
551
openHiTLSopenHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
421
392
openGauss-serveropenGauss-server
openGauss kernel ~ openGauss is an open source relational database management system
C++
145
189
金融AI编程实战金融AI编程实战
为非计算机科班出身 (例如财经类高校金融学院) 同学量身定制,新手友好,让学生以亲身实践开源开发的方式,学会使用计算机自动化自己的科研/创新工作。案例以量化投资为主线,涉及 Bash、Python、SQL、BI、AI 等全技术栈,培养面向未来的数智化人才 (如数据工程师、数据分析师、数据科学家、数据决策者、量化投资人)。
Jupyter Notebook
74
64
Cangjie-ExamplesCangjie-Examples
本仓将收集和展示高质量的仓颉示例代码,欢迎大家投稿,让全世界看到您的妙趣设计,也让更多人通过您的编码理解和喜爱仓颉语言。
Cangjie
344
1.3 K
easy-eseasy-es
Elasticsearch 国内Top1 elasticsearch搜索引擎框架es ORM框架,索引全自动智能托管,如丝般顺滑,与Mybatis-plus一致的API,屏蔽语言差异,开发者只需要会MySQL语法即可完成对Es的相关操作,零额外学习成本.底层采用RestHighLevelClient,兼具低码,易用,易拓展等特性,支持es独有的高亮,权重,分词,Geo,嵌套,父子类型等功能...
Java
36
8