Symfony安装本质是创建可运行项目,完整版(--full)开箱即用,含Twig、Doctrine、Security等;骨架版(skeleton)极简,需按需安装组件。

Symfony 安装不是“装一个框架”,而是创建一个可运行的项目。核心区别在于:完整版(--full 或 website-skeleton)开箱即用,骨架版(skeleton)按需加载——选错版本,后期补功能反而更费时间。
完整版适合什么人?
新手、传统Web项目、需要快速出页面的场景。它默认集成:
- Twig 模板引擎(
templates/目录已就位) - Doctrine ORM(数据库操作开箱可用)
- Security 组件(用户登录/权限基础已配好)
- Webpack Encore(前端资源编译支持)
- MakerBundle(
php bin/console make:controller等命令直接可用)
执行 symfony new myapp --full 或 composer create-project symfony/website-skeleton myapp 即可获得这套配置。启动后访问 http://localhost:8000 能立刻看到带样式的欢迎页,不是纯文本。
骨架版适合什么人?
API服务、微服务、CLI工具、或想彻底理解依赖加载机制的开发者。它只含最简结构:
- 没有
templates/目录(不自动装 Twig) - 没有 Doctrine 配置(
config/packages/doctrine.yaml不存在) - 没有
make:命令(MakerBundle 需手动composer require --dev maker-bundle) - 路由和控制器要自己写或手动安装组件
执行 composer create-project symfony/skeleton myapi 后,php bin/console list 显示的命令极少,src/Controller/ 为空。适合从零构建、避免冗余依赖的场景。
关键操作差异点
两者目录结构一致,但功能启用方式不同:
-
加模板功能:骨架版需
composer require twig+ 手动创建templates/;完整版已就绪 -
加数据库支持:骨架版需
composer require doctrine+ 运行php bin/console doctrine:database:create;完整版已预配 -
加开发命令:骨架版缺
make:,必须装 MakerBundle 并执行php bin/console make:controller;完整版直接可用 -
环境验证:完整版运行
symfony check:requirements通常全绿;骨架版可能提示 “Twig not found” 等,属正常
怎么选才不踩坑?
看第一周要做什么:
- 要做带登录、列表页、表单的后台系统 → 选完整版
- 要写一个 JSON 接口给 App 调用 → 选骨架版
- 不确定需求,但希望边学边加 → 选完整版,后期可删不用组件(如卸载 Twig:
composer remove twig) - 团队已有标准基建(如统一用 API + Vue 前端)→ 骨架版更轻量可控
不复杂但容易忽略:版本号不必追最新,LTS 版本(如 Symfony 6.4、7.3)稳定性更高,文档和扩展支持更全。


















