应根据项目类型选择:symfony/skeleton适合api/cli/微服务,无twig等web组件;symfony/website-skeleton适合传统web页面,预装twig、webprofiler等,但需注意web-server-bundle已弃用。

你想用 Composer 下载 Symfony 6.4,但面对 symfony/skeleton 和 symfony/website-skeleton 两个选项拿不定主意——它们不是“精简版 vs 完整版”的简单关系,而是面向不同架构场景的预设起点,选错会导致后续反复删配置、补依赖、调路由。
核心区别:不是功能多寡,而是默认能力边界
symfony/skeleton 是纯 API/CLI/微服务场景的最小可行骨架;symfony/website-skeleton 是传统 Web 页面渲染场景的开箱即用起点。两者都基于 Flex,但 recipe 注入的内容截然不同。
这一步操作起来很简单,直接把文件拖进去就行。
symfony/skeleton:API 场景专用,启动快、vendor 干净
第一步:运行命令创建项目 → composer create-project symfony/skeleton myapp
第二步:检查生成内容 → ls -A config/ src/ public/ composer.json,你会发现:【没有 twig-bundle、没有 web-profiler-bundle、没有 asset-mapper、没有 .env.local、也没有任何 HTML 模板目录】
第三步:验证路由行为 → 启动内置服务器 php -S localhost:8000 -t public,访问 http://localhost:8000 会返回 404,因为连默认 homepage 控制器都没预装——你得自己写 Controller/DefaultController.php 并配路由。
这个骨架适合写 REST API、命令行工具或消息队列消费者,它不假设你要渲染页面,所以不会塞进任何前端相关组件。
symfony/website-skeleton:Web 页面场景预装,但要注意弃用项
方法一:标准安装 → composer create-project symfony/website-skeleton myweb
方法二:锁定 6.4 LTS 版本(推荐)→ composer create-project symfony/website-skeleton myweb --version=6.4.*。不加 --version 可能拉到 7.x 的 alpha/beta,导致文档对不上、Bundle 报错。
安装后立即检查 config/packages/ 目录:你会看到 twig.yaml、web_profiler.yaml、asset_mapper.yaml 等文件已存在;templates/ 目录也已生成,里面含 base.html.twig 和 homepage.html.twig。
【注意:web-server-bundle 已被弃用,不要在 config/bundles.php 中启用它】 开发时必须用 php -S localhost:8000 -t public 或安装 symfony-cli 后执行 symfony server:start,否则会启动失败。
如何选?看你的第一个 HTTP 响应要返回什么
① 如果你计划用 React/Vue 做前端,后端只提供 JSON 接口 → 选 symfony/skeleton,避免引入 Twig、AssetMapper 等无用依赖。
② 如果你要用 Twig 渲染 HTML 页面、需要开发工具栏调试、想直接用 {{ asset() }} 输出 CSS/JS → 选 symfony/website-skeleton。
③ 如果你不确定,但知道未来肯定要加前端构建流程 → 先用 symfony/skeleton,再手动 composer require symfony/asset-mapper twig-bundle,这样更可控。
两种骨架都能通过 composer require 互相补全功能,但反向清理冗余 Bundle 很麻烦——比如从 website-skeleton 删掉 Twig 后,还得手动删模板、改控制器返回类型、清理 config/packages/twig.yaml,稍有遗漏就会报错。
大量免费API接口:立即使用
涵盖生活服务API、金融科技API、企业工商API、等相关的API接口服务。免费API接口可安全、合规地连接上下游,为数据API应用能力赋能!











