全书目录

第三十七篇:Symfony 完全指南 —— 组件化政务城区宇宙

第五章:目录结构不是乱文件夹,而是政务城区各栋楼

1 分钟 111 字 第 702 / 962 个阅读单元

Symfony 默认目录结构很值得尊重,因为它就是一套已经跑通的城区平面图:

text
permit_city/
├── assets/               # 前端静态资源
├── bin/
│   └── console           # 内勤控制台入口
├── config/
│   ├── packages/         # 各部门配置
│   ├── routes/           # 路由配置
│   ├── bundles.php       # 已启用部门名单
│   └── services.yaml     # 服务派工规则
├── migrations/           # 档案结构变更令
├── public/
│   └── index.php         # 前门总闸
├── src/
│   ├── Command/          # 内勤命令
│   ├── Controller/       # 受理窗口
│   ├── Entity/           # 档案对象
│   ├── EventSubscriber/  # 广播订阅者
│   ├── Form/             # 表单类
│   ├── Repository/       # 档案查询
│   ├── Security/         # 安检/投票器
│   ├── Service/          # 业务处室
│   └── Kernel.php        # 区级总调度中心
├── templates/            # Twig 公告模板
├── tests/                # 验收区
├── translations/         # 多语言公文
├── var/                  # 缓存/日志
└── vendor/               # 外部设施

配置也要建立正确心智:

text
基础设施差异
= env vars / .env / secrets
例如数据库地址、队列 DSN、第三方密钥

应用行为参数
= config/services.yaml 里的 parameters
例如通知发送者、地区列表、某些开关

服务接线
= services.yaml

各部门配置
= config/packages/*.yaml

路由组织
= attributes 或 config/routes/*

不要把所有东西都塞进 .env
也不要把所有配置都写死在类里。
Symfony 的好处恰恰在于它把这些边界分得很清楚。