Symfony 默认目录结构很值得尊重,因为它就是一套已经跑通的城区平面图:
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/ # 外部设施配置也要建立正确心智:
基础设施差异
= env vars / .env / secrets
例如数据库地址、队列 DSN、第三方密钥
应用行为参数
= config/services.yaml 里的 parameters
例如通知发送者、地区列表、某些开关
服务接线
= services.yaml
各部门配置
= config/packages/*.yaml
路由组织
= attributes 或 config/routes/*不要把所有东西都塞进 .env。
也不要把所有配置都写死在类里。
Symfony 的好处恰恰在于它把这些边界分得很清楚。