ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Sylius 2.0 版本演进全解析:从 CHANGELOG-2.0 读懂 PHP 电商平台的主线技术升级

Sylius 2.0 版本演进全解析:从 CHANGELOG-2.0 读懂 PHP 电商平台的主线技术升级 电商后端API网关【免费下载链接】SyliusHeadless open-source eCommerce platform on top of PHP/Symfony/API Platform项目地址https://gitcode.com/gh_mirrors/sy/Sylius点击查看免费下载本篇技术指南以仓库中的 CHANGELOG-2.0.md 为骨架系统梳理 Sylius 2.0 系列从 ALPHA.1 到 v2.0.13 的版本演进脉络并结合仓库源码与升级文档解读每条 PR 背后的技术主线API Platform 3 全面迁移、Bootstrap 前后端重构、Twig Hooks 组件化、Payment Request 支付子系统、服务命名统一与旧依赖清理。读者读完可以掌握 Sylius 2.0 的核心架构变化、升级要点与可验证的源码位置为评估或迁移到 2.0 提供依据。版本时间线与发布节奏CHANGELOG-2.0.md 记录了 Sylius 2.0 系列从 2024 年 9 月到 2025 年 9 月的完整发布历史其中前三个版本为预发布版本随后进入稳定的补丁发布节奏版本发布日期定位v2.0.0-ALPHA.12024-09-192.0 分支初始准备v2.0.0-ALPHA.22024-09-24Symfony 7 支持v2.0.0-ALPHA.32024-10-15PaymentRequest / APIP 3 深化v2.0.0-BETA.12024-10-30服务命名统一、UI 重构收尾v2.0.0-RC.12024-11-07冻结功能、准备发布v2.0.02024-11-12正式发布v2.0.1 ~ v2.0.132024-12 ~ 2025-09补丁与维护版本从版本节奏可以看出2.0 的 ALPHA/BETA/RC 阶段集中在 2024 年 9-11 月此后以约每 1-2 个月一个补丁版本的速度持续维护。v2.0.132025-09-09是仓库当前记录的最新 2.0.x 补丁。一、ALPHA 阶段2.0 分支的奠基与 Symfony 7 支持1. 分支准备与仓库清理v2.0.0-ALPHA.1 的 PR #15312 Prepare the 2.0 branch 开启了整个 2.0 系列。同期完成了一系列奠基工作移除 Gulp 构建工具#15314前端构建统一走向 Webpack Encore提升 Symfony 依赖版本#15327EntityManager 类型提示统一构造函数中的EntityManager全部替换为EntityManagerInterface#15325这是 2.0 大量构造函数签名变更的一部分日历组件替换用symfony/clock取代sylius/calendar包#15326 中 PromotionBundle/ShippingBundle/TaxationBundle 移除 sylius/calendar 依赖 的说明全面清理各 Bundle 的废弃代码CoreBundle、AdminBundle、ShopBundle、ApiBundle、UserBundle、ProductBundle 等均有专项 PR。2. API Platform 3 迁移正式启动ALPHA.1 中最关键的技术主线是API Platform 3 迁移#15379这是 2.0 相比 1.x 最根本性的变化。从 CHANGELOG 可以看到大量按资源逐个升级到 APIP 3 的 PRAdminUser 与 Customer 的 APIP 3 认证#15392Country/Province#15420、Currency/ExchangeRate#15412、ContactRequest#15393、CatalogPromotion#15432等资源逐批迁移。3. Symfony 7 支持ALPHA.2 阶段2024-09-24通过约 20 个 PR 为所有组件与 Bundle 添加 Symfony 7 支持从 Addressing、Attribute、Currency 到 Admin、Shop、API、Core 全覆盖#16371 至 #16864 等。这一阶段还完成了最小版本统一Bump 所有 Symfony 依赖到 ^6.4#15612CI 矩阵升级加入 PHP 8.3、Symfony 7 构建#16890。升级文档 UPGRADE-2.0.md 明确说明Sylius 2.0 最低支持 PHP 8.2支持 Symfony 6.4 与 7.1不再支持 Symfony 5.4。当前仓库主线的 composer.json 已要求 PHP ^8.3 与 Symfony ^6.4 || ^7.4 || ^8.0说明版本要求仍在持续收紧。4. State Provider 目录结构重组CHANGELOG 中 ALPHA.3 阶段出现了 ADR 相关的 PR[ADR] Api - State providers structure#16576 记录了决策背景2.0 之前 API 基于 API Platform 2 的DataProviders全部堆放在Sylius\Bundle\ApiBundle\DataProvider目录无法区分 admin/shop 分区。API Platform 3 将DataProviders演进为StateProviders促使 Sylius 重新组织目录结构。最终方案是按sectionsadmin/shop与 resources 双重维度组织。这一决策在当前源码中得到了完全印证src/Sylius/Bundle/ApiBundle/StateProvider 下分为Common/、Shop/两个分区其下再按资源分子目录如Shop/Order/OrderItem/Adjustment/CollectionProvider.php、Shop/Payment/PaymentRequest/ItemProvider.php。与之配套的还有 StateProcessors#16565 与 adr/2024_07_16_api_query_extensions_directory_structure.md。二、BETA / RC 阶段Bootstrap 前后端重构与服务命名统一1. 全新 Bootstrap Admin 面板与 Shop 主题2.0 的前端变化是一整条独立主线Bootstrap Admin Panel从 ALPHA.1 开始搭建navbar、sidebar、login、CRUD 页面BETA 阶段持续迭代最终在 ALPHA.3 通过 #16272 Merge Bootstrap Admin Panel to 2.0 branch 合入主线Bootstrap Shop同样经历独立开发homepage、cart、checkout、account、product show 等最终通过 #16930 Merge Bootstrap Shop into 2.0 合入。2. Twig Hooks模板定制机制的全面重构2.0 将大量 Twig 模板事件twig_event替换为Twig Hooks#15823并配套引入sylius/twig-hooks依赖版本从 ^0.1 一路升级到 ^0.12#16150、#16202、#16551为 admin 与 shop 的每个页面重排 hookscheckout#17413、account#17416、product show#17394、cart#17364、登录/注册/重置密码#17344、#17345、#17367等支持 hook 优先级#17232、#17252。同时引入 Symfony UX 组件体系TwigComponent、LiveComponent表单改为 Live Component 获得交互式校验、StimulusBundle、Autocompleteconfig/bundles.php中新增了这些 Bundle。Twig Hooks 的定位可以从 v2.0.3 的变更看出为 admin_user 与 customer 的 form.sections hook 增加left/right子分区#17585详见 UPGRADE-2.0.md 的升级说明。3. 服务命名统一Services Naming ConventionBETA.1 阶段出现了大量 [All] Unification of services names 类 PR背后是 ADR adr/2024_10_03_services_naming_convention.md 确定的决策采用dot 记号与 FQCN 结合的方案为实现了非泛型接口的服务补充 FQCN 别名alias以支持 Symfony 的autowire特性form type、message handler、validator、event listener 等不参与 autowire 的服务继续使用 dot 记号。services service idsylius_admin.resolver.some classSylius\Bundle\AdminBundle\Resolver\SomeResolver / service idSylius\Bundle\AdminBundle\Resolver\ResolverInterface aliassylius_admin.resolver.some / /services与之相关的还有服务改为 private#17276升级文档提醒这会影响直接通过容器取服务的代码。4. Winzou State Machine 变为可选BETA.1 中 Make Winzou State Machine the optional dependency#17222把状态机组件移出核心依赖。升级文档说明若仍需使用需显式安装winzou/state-machine与winzou/state-machine-bundle同时sylius_core.state_machine配置参数被弃用#17223。三、Payment Request2.0 新增的支付请求子系统Payment Request 是 2.0 新增的核心功能贯穿 ALPHA.3 至 RC 阶段实现拆分为多个 Bundle#17037最终并入 2.0#17165提供 POST 端点、notify 路由#17151、pay 路由#17403引入Messenger 传输#17014对应升级文档要求新增环境变量SYLIUS_MESSENGER_TRANSPORT_PAYMENT_REQUEST_DSNsync:// SYLIUS_MESSENGER_TRANSPORT_PAYMENT_REQUEST_FAILED_DSNsync://敏感字段加密#17283 与 config/jwt/ 中的测试密钥支撑测试环境支付方法变更时自动取消待处理支付请求#15950为 PaymentRequest 添加状态机#17068。源码层面src/Sylius/Bundle/PaymentBundle 已形成完整实现Action/PaymentRequestNotifyAction、Announcer/PaymentRequestAnnouncer、Canceller/PaymentRequestCanceller、Checker/PaymentRequestDuplicationChecker、Doctrine/ORM/PaymentRequestRepository等src/Sylius/Bundle/ApiBundle/StateProvider/Shop/Payment/PaymentRequest/ItemProvider.php 则为 Shop 分区的 PaymentRequest 提供数据。配套的还有 GatewayConfig 从 Payum 迁往 Payment 组件#16695升级文档给出了对应的配置迁移示例sylius_payment.resources.gateway_config替代sylius_payum.resources.gateway_config。四、API 层持续演进与安全防火墙调整API 防火墙重命名new_api_admin_user→api_admin、new_api_shop_user→api_shop#17240 使用%sylius.security.api_route%前缀印证了升级文档中new_api_route→api_route的重命名。移除 legacy 配置legacy_error_handling与serialization_groups等 API 配置参数被弃用并移除#17318、#17317。端点细化Province 变为 Country 的子资源#17059、Promotion Coupon 变为子资源#16996、支持移除现有端点#17102、引入所有端点的 operations 命名#16967。五、依赖大扫除2.0 移除了什么CHANGELOG 与 UPGRADE-2.0.md 共同勾勒出 2.0 的依赖清理清单Swiftmailer 移除#15495改用symfony/mailerJMS Serializer 移除#17118FOSRestBundle 移除#17025Hateoas Bundle 移除#16980、#16959支付网关精简移除payum/paypal-express-checkout-nvp、payum/stripe、stripe/stripe-php#16945、#16946ThemeBundle 从 CoreBundle 移至 ShopBundle#17106移除 SVG 支持#17351Doctrine 迁移重新生成所有旧迁移文件合并为一个迁移文件#16933升级命令为bin/console doctrine:migrations:migrate --no-interaction。六、补丁版本要点从 v2.0.1 到 v2.0.13正式发布后的补丁版本聚焦于修复、多语言支持与维护多语言翻译v2.0.8-v2.0.10 集中合入了数十种语言的 2.0 翻译波兰语、德语、法语、荷兰语、中文、日语、韩语、瑞典语、葡萄牙语、印地语、捷克语、斯洛伐克语等前端细节修复移动端 UI、面包屑、图标、字体、无障碍a11y、性能优化关键 bug 修复结算时按可用国家过滤#18317、促销金额计算顺序修正#18303、不可达配送区域的订单下单修复#18339Composer 冲突管理针对symfony/ux、api-platform、behat/gherkin、phpstan/phpdoc-parser等增加 conflict 声明#18274 中找到说明ZoneEligibilityChecker 服务 ID 修正#18345。七、给 1.x 用户的升级行动清单综合 CHANGELOG 与 UPGRADE-2.0.md从 1.14 升级到 2.0 的必做项可归纳为包配置迁移将gateway_config从sylius_payum迁移到sylius_payment并新增SyliusPayumBundle/Resources/config/app/config.yamlimport防火墙重命名api_admin/api_shop/admin/shop四个防火墙均需配置user_checker: security.user_checker.chain.firewall路由调整API 前缀参数由%sylius.security.new_api_route%改为%sylius.security.api_route%payum 路由改引 PayumBundle 集成文件新增sylius_payment_notify新增环境变量SYLIUS_MESSENGER_TRANSPORT_PAYMENT_REQUEST_DSN与SYLIUS_MESSENGER_TRANSPORT_PAYMENT_REQUEST_FAILED_DSNBundle 注册表更新移除旧 BundleCalendar、winzouStateMachine、Hateoas、JMSSerializer、FOSRest、APIP Core 等新增ApiPlatform\Symfony\Bundle\ApiPlatformBundle与各 Symfony UX Bundle构造函数签名变更多个 Twig 扩展、Action、Listener 的参数从Helper 或接口联合类型收敛为单一接口类型详见 UPGRADE-2.0.md 的构造器变更清单迁移数据库bin/console doctrine:migrations:migrate --no-interaction。结语从 CHANGELOG-2.0.md 的 1431 行记录可以清晰看到Sylius 2.0 是一次技术栈现代化而非简单的功能叠加API Platform 3 重塑了 API 层Bootstrap Twig Hooks Symfony UX 重塑了前后端Payment Request 补齐了支付流程服务命名与依赖清理则降低了长期维护成本。对于 1.x 用户这份 CHANGELOG 与 UPGRADE-2.0.md 相互印证是规划升级路径的第一手资料。赞分享电商后端API网关【免费下载链接】SyliusHeadless open-source eCommerce platform on top of PHP/Symfony/API Platform项目地址https://gitcode.com/gh_mirrors/sy/Sylius点击查看免费下载相关推荐Egg 框架版本演进全解析从 CHANGELOG 读懂 egg4 的技术变革与升级路线Egg 框架版本演进全解析从 CHANGELOG 读懂 egg4 的技术变革与升级路线 导读 本文基于 egg 仓库根目录的 CHANGELOG.md ht后端Web框架PLANKA 版本演进全解读基于 CHANGELOG 的 2.0 → 2.2 升级指南与安全特性解析PLANKA 版本演进全解读基于 CHANGELOG 的 2.0 → 2.2 升级指南与安全特性解析 本文以仓库根目录的 CHANGELOG.md https后端前端项目管理企业应用协同办公Leaflet 版本演进全解从 CHANGELOG 读懂 2.0 ESM 现代化改造与 1.x 迁移路径Leaflet 版本演进全解从 CHANGELOG 读懂 2.0 ESM 现代化改造与 1.x 迁移路径 Leaflet 的 CHANGELOG.md htt前端数据可视化GIS上一篇黑苹果 macOS 版本选择指南用 OpCore-Simplify 快速选出最适合你的系统版本下一篇CyberPII 隐私基准评测指南PII 脱敏四指标创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表