唯一正解是用 composer create-project 创建 symfony 项目,因其直接拉取官方骨架仓库生成结构完整、开箱即用的项目;官方 installer 和 symfony cli 已废弃,symfony/symfony 包自 4 版起被弃用。

别再纠结“用哪个工具装 Symfony”了——官方 Installer 已停更多年,真正可靠、唯一推荐的方式只有 composer create-project。它不是“安装工具”,而是直接拉取官方骨架仓库,生成结构完整、开箱即用的项目,所有依赖、目录、自动加载和命令入口(如 bin/console)一步到位。
官方 Installer 早就该被忘了
那个通过 curl -LsS https://symfony.com/installer 下载的全局 symfony 命令,早在 Symfony 4 时代就停止维护;到 6.2 版本起,连 Symfony CLI 工具本身都被标记为 deprecated。现在执行 symfony new:
- 本地没装 CLI 就直接报错 command not found
- 即使装了,也不支持精确锁定小版本(比如你要 6.4.*,它可能给你 7.0.x)
- 生成的项目缺
src/、缺App\Kernel、运行php bin/console必报错
composer create-project 是唯一正解
这条命令本质是克隆并初始化一个预配置好的 Git 仓库,自动完成依赖安装、目录生成和基础脚本注册。关键细节必须注意:
- API 项目用:
composer create-project symfony/skeleton myapi - 传统 Web 项目用:
composer create-project symfony/skeleton myweb --webapp(推荐新手) - 要 LTS 版本(如 6.4):加
^6.4或--version=6.4.* - 目标目录(如
myweb)必须不存在,否则命令直接失败,不覆盖
别碰 global require 这条死路
像 composer global require symfony/symfony 或 symfony/console 这类操作毫无意义:
-
symfony/symfony包自 Symfony 4 起就被标记为 abandoned - 装完只有空目录,没有
src/、没有config/、没有public/,根本跑不起来 - 手动拼凑组件极易出错,常见报错包括
Class not found: App\Kernel或No routes found
选骨架比选工具更重要
所谓“安装”,其实是选择起点。当前有三种初始化方式,区别只在预装组件多少:
-
骨架版(
symfony/skeleton):最轻量,只含核心组件,适合学习或 API 服务 -
标准版(
skeleton --webapp):自动加 Twig、Doctrine、MakerBundle、WebProfiler,适合新手建后台或官网 - website-skeleton(旧包):已弃用,文档滞后、不再同步新特性,看到就跳过
不复杂但容易忽略:装 Symfony 不是“装框架”,而是创建一个带结构的项目。只要一条 create-project 命令,PHP 版本匹配(6.4 需 PHP 8.1+,7.x 需 8.2+),就能立刻 php -S localhost:8000 -t public 启动访问。











