推荐使用 symfony new myapp --webapp 创建完整Web项目,它自动拉取website-skeleton、预装Doctrine/Twig/MakerBundle等,生成含public/index.php的可运行应用,并默认启用dev环境、APP_DEBUG=1和Flex。

创建 Symfony 完整标准版项目,核心是使用官方推荐的 symfony/skeleton + symfony/webapp-pack 组合方式,而非过时的“Standard Edition”(已废弃)。它自动集成 Web 开发所需全套组件,包括 Twig、Doctrine、Web Server、Asset 等,并保持轻量与可扩展性。
一步初始化:用 Composer 创建骨架项目
在终端中执行以下命令(无需手动创建 composer.json):
composer create-project symfony/skeleton my_project- 进入项目目录:
cd my_project - 安装 Web 应用必备功能包:
composer require webapp
该命令会自动加载 symfony/webapp-pack,并触发其依赖安装流程——包括 Twig(模板)、Doctrine(ORM)、Monolog(日志)、Symfony UX(前端交互)、Webpack Encore(资产编译)等。所有配置文件(如 config/packages/twig.yaml)也一并生成。
关键依赖说明:哪些包真正构成“完整版”
运行 composer require webapp 后,实际引入的核心包有:
-
twig/twig:默认模板引擎,支持继承、块、过滤器、转义 -
doctrine/orm+doctrine/doctrine-bundle:数据库抽象与映射支持 -
symfony/webpack-encore-bundle:集成 Webpack,处理 CSS/JS 编译与版本管理 -
symfony/form、symfony/security-bundle、symfony/validator:表单、权限、校验三大高频功能 -
symfony/mailer和symfony/notifier:邮件与通知能力(可选启用)
这些不是“全部装上”,而是按需激活——例如不使用邮件功能,相关服务默认不注册;Bundle 通过配置开关控制是否加载。
验证与启动:快速确认环境就绪
安装完成后,立即验证是否可运行:
- 启动内置 Web 服务器:
php bin/console server:run(或symfony server:start,需安装 Symfony CLI) - 访问
http://127.0.0.1:8000,应看到 Symfony 默认欢迎页(含环境信息与调试工具栏) - 检查依赖状态:
php bin/console debug:container查看已注册服务,php bin/console debug:router查看路由
若提示缺少 ext-pdo 或 ext-xml,说明 PHP 扩展未启用,需修改 php.ini 并重启 Web 服务。
后续建议:避免常见陷阱
实际开发中容易忽略但影响长期维护的点:
- 不要直接
composer require单个组件(如doctrine/doctrine-bundle),优先走 Pack 机制,保证版本兼容性 - 禁用 dev-only 包上线:
composer install --no-dev部署时务必加上此参数 - 数据库驱动需单独安装:
composer require doctrine/doctrine-bundle不含pdo_mysql,需确保 PHP 已启用对应扩展 - 模板路径默认为
templates/(非旧版src/Resources/views/),Twig 自动识别该目录
这套方法从 2019 年起就是 Symfony 官方主推路径,适配 Symfony 5.4 至 7.x 全系列,稳定且无冗余。不复杂但容易忽略细节。


















