symfony 6.4.48 是 lts 版本,要求 php ≥ 8.2,推荐用属性路由、按需安装组件,通过 skeleton 初始化项目,支持 doctrine 数据库、安全认证及生产环境配置。

Symfony 6.4.48 是一个长期支持(LTS)版本,稳定、安全、生态成熟,适合从零构建生产级 Web 应用。它不强制你用最新语法,但要求 PHP ≥ 8.2,且默认启用现代最佳实践(如属性路由、编译时优化、预加载缓存)。搭建过程核心是“最小可行结构 + 渐进增强”,而非堆砌功能。
基础环境与项目初始化
确保系统已安装 PHP 8.2+、Composer 2.5+ 和 Node.js(可选,用于前端资源管理)。执行以下命令创建项目:
-
推荐方式(官方骨架):
composer create-project symfony/skeleton my-app—— 轻量,无 Webpack/Messenger 等默认组件,按需安装 - 进入目录后,运行
composer require webapp安装 Web 核心栈(含 Twig、Doctrine、Security、Form 等) - 执行
php bin/console server:start启动内置服务器(开发用),访问http://127.0.0.1:8000即可见欢迎页
定义第一个控制器与路由
Symfony 6.4 推荐使用 PHP 属性(Attribute)定义路由,替代 YAML 或注解(@Route)。
- 在
src/Controller/下新建HomeController.php - 添加如下代码:
namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Annotation\Route; #[Route('/')] class HomeController extends AbstractController { #[Route('', name: 'app_home')] public function index(): Response { return $this->render('home/index.html.twig', [ 'message' => 'Hello from Symfony 6.4.48' ]); } } - 运行
php bin/console cache:clear清理缓存,再访问根路径即可看到渲染结果
数据库与实体快速接入
若需操作数据库,先安装 Doctrine:
-
composer require doctrine(自动配置 SQLite 默认连接) - 生成实体:
php bin/console make:entity Product,按提示添加字段(如name:string(255),price:float) - 生成迁移:
php bin/console make:migration→ 执行php bin/console doctrine:migrations:migrate - 如需 CRUD 界面,可追加
composer require --dev maker-bundle并运行php bin/console make:crud Product
安全与用户登录(精简版)
启用基础认证只需三步:
composer require security- 运行
php bin/console make:user创建User实体(选择存储在数据库) - 运行
php bin/console make:auth,选择“Login form authenticator”,按向导完成配置 - 此时访问
/login即可看到登录表单;注册用户需自行添加注册逻辑或使用make:registration-form
不复杂但容易忽略:所有配置默认位于 config/packages/ 下的 YAML 文件中,6.4.48 的安全策略、Twig 设置、日志等级等均可在此微调。首次部署前务必检查 .env 中的 APP_ENV=prod 和 APP_DEBUG=0。











