安装
本指南将帮助你完成 Doggy Framework 的安装和初始化配置。
前置条件
- PHP >= 8.2
- ext-ctype, ext-iconv
- PostgreSQL >= 14
- Composer >= 2.5
- Docker 和 Docker Compose(必需,提供数据库和 Mercure Hub)
目录结构
my-app/
├── Caddyfile # FrankenPHP 配置(含 Mercure Hub、压缩、缓存)
├── docker-compose.yml # 数据库 + Mercure Hub 服务编排
├── config/
│ ├── bundles.php
│ ├── packages/ # 31 个 Bundle 配置文件
│ └── services.yaml
├── src/
│ ├── Annotation/ # Ef.php, EfGroup.php
│ ├── Entity/ # Organization, Platform, Security, Storage, System, Traits
│ ├── Controller/ # Admin, Api, Security
│ ├── Service/ # AI, Storage, Security, Task, Platform 等
│ └── ...
├── templates/ # 143 个 Twig 模板
└── public/ # 入口文件Docker 部署
bash
git clone git@github.com:doggy/skeleton.git my-app
cd my-app
cp .env.example .env
# 编辑 .env 配置数据库连接与 Mercure JWT 密钥
docker compose up -dDocker Compose 包含两个服务:
| 服务 | 镜像 | 说明 |
|---|---|---|
database | postgres:14-alpine | PostgreSQL 数据库,数据持久化到 named volume |
mercure | dunglas/mercure | Mercure SSE 实时推送 Hub,含健康检查 |
应用本身在宿主机通过 FrankenPHP 运行,不容器化 PHP。
启动应用
应用在宿主机通过 FrankenPHP 运行:
bash
# 开发环境
symfony serve
# 生产环境(FrankenPHP Worker 模式)
cd my-app && php -d variables_order=EGPCS bin/runtime -vvvFrankenPHP 自动从 Caddyfile 读取配置,监听 http://localhost:8000。
初始化数据库
bash
php bin/console doctrine:database:create
php bin/console doctrine:migrations:migrate
php bin/console doctrine:fixtures:load初始化基础数据
bash
# 初始化管理员账号(三员)
php bin/console app:init-officers
# 生成静态菜单
php bin/console app:ef:init-admin-menu默认账号
| 角色 | 用户名 | 初始密码 |
|---|---|---|
| 系统管理员 | admin | admin123 |
| 安全保密员 | security | security123 |
| 安全审计员 | auditor | auditor123 |
⚠️ 生产环境必须修改所有默认密码。