官方推荐唯一可靠方式是用 composer create-project 初始化 Symfony 项目,因 symfony/symfony 元包自4版起已废弃,手动 require 会导致依赖冲突、缺骨架结构及 CLI 失效。

直接用 composer create-project 就能初始化一个标准 Symfony 项目,不需要手动安装框架包或配置 autoload —— 这是官方推荐的唯一可靠方式。
为什么不能用 composer require symfony/symfony
这是最常见的误操作。旧版文档曾提过该命令,但自 Symfony 4 起,symfony/symfony 元包已被废弃,强行安装会导致:
- 依赖冲突(比如
symfony/http-kernel和symfony/framework-bundle版本不匹配) - 缺少项目骨架(没有
src/、config/、public/index.php等必需结构) - CLI 命令(如
bin/console)无法正常工作
composer create-project 的正确用法
它会拉取完整项目模板(如 symfony/website-skeleton 或 symfony/skeleton),并自动执行安装脚本。常用组合:
- 带 Web 功能的完整项目:
composer create-project symfony/website-skeleton my-project - 最小化 API 项目(无 Twig、Web Server):
composer create-project symfony/skeleton my-project - 指定版本(如 6.4 LTS):
composer create-project symfony/website-skeleton:^6.4 my-project
注意:命令执行后,composer install 会自动运行,bin/console 和 public/index.php 都已就绪。
安装后必须检查的三件事
很多问题其实出在初始化后的疏忽:
- 确认 PHP 版本兼容性:Symfony 6.x 要求 PHP >= 8.1,运行
php -v核对 - 检查
APP_ENV环境变量:开发环境务必设为dev(在.env中),否则错误不显示、缓存不自动刷新 - 验证 Web 服务器配置:直接用
php -S localhost:8000 -t public启动最稳妥;Apache/Nginx 需确保重写规则指向public/index.php
真正卡住人的往往不是安装命令本身,而是环境变量没生效、PHP 版本错配、或者误以为装了框架包就等于有了可运行项目 —— 框架 ≠ 项目,create-project 才是那个把“框架能力”变成“可用应用”的关键动作。










