应使用 symfony new my_project_name 6.4.12 或 composer create-project symfony/skeleton:6.4.12 my_project_name 精确创建 symfony 6.4.12 项目,确保 composer.lock 锁定该小版本,避免补丁升级导致行为不一致。

你需要在命令行中创建一个明确锁定小版本号的 Symfony 6.4 项目,避免 Composer 自动升级到 6.4.x 中更高但不兼容的补丁版本,比如防止从 6.4.1 升到 6.4.8 导致某扩展行为突变。
用 symfony 命令指定精确小版本
第一步:确保已安装全局 symfony 命令(Linux/macOS 执行 sudo curl -LsS https://symfony.com/installer -o /usr/local/bin/symfony && sudo chmod a+x /usr/local/bin/symfony;Windows 下用 php -r "readfile('https://symfony.com/installer');" > symfony 并放入 PATH)。
第二步:运行命令,【必须把版本号写全,不能只写 6.4】:
symfony new my_project_name 6.4.12
这个命令会拉取 Symfony 6.4 分支下确切的 6.4.12 版本骨架,包括所有依赖包的精确版本锁(composer.lock 内固定),而不是仅满足 ^6.4 的最新 patch 版。如果你漏掉小版本号,比如只写 symfony new my_project_name 6.4,它实际会下载该分支最新的 patch 版(当前可能是 6.4.15),无法保证与你线上环境一致。
用 Composer 指定精确小版本(推荐用于 CI/CD)
方法一:直接使用 create-project 并显式声明版本约束
composer create-project symfony/skeleton:^6.4.12 my_project_name --stability=stable --no-interaction
注意:^6.4.12 在 Composer 中等价于 >=6.4.12 且【@version 限定符】:
方法二:强制锁定到 6.4.12 的完整版本号
composer create-project symfony/skeleton:6.4.12 my_project_name --stability=stable --no-interaction
这会跳过版本范围解析,直接下载 6.4.12 tag 对应的代码和 lock 文件。适用于需要与测试环境完全一致的生产部署场景。
验证是否成功锁定小版本
进入项目目录后,执行:
composer show symfony/skeleton
输出中应明确显示 versions : * v6.4.12,而非 v6.4.12|v6.4.13|v6.4.14 或类似多版本提示。
再检查 composer.lock 文件顶部的 "content-hash" 和 "packages" 下 "symfony/skeleton" 条目中的 "version" 字段,确认值为 "6.4.12"(不含 -dev、-beta 或 +hash 后缀)。











