docs(stack): 重写框架规则、stack README 与项目模板提示

This commit is contained in:
augushong
2026-07-22 00:56:43 +08:00
parent 387d89c596
commit 9f5ffc34c4
3 changed files with 41 additions and 31 deletions

View File

@@ -10,6 +10,8 @@
## 开发方式
<!-- B-route 提示你的项目实际用哪个模式default=根目录 php think rundocker 模式=cd source/stack/<mode> && docker compose up -d。把你的实际选择记录在下面。-->
(描述本项目的开发模式。例如:
- 本地 WAMP / XAMPP + 直接修改代码
@@ -22,6 +24,8 @@
## 运行方式
<!-- B-route 提示你的项目实际用哪个模式default=根目录 php think rundocker 模式=cd source/stack/<mode> && docker compose up -d。把你的实际选择记录在下面。-->
(描述本项目实际如何运行。例如:
- `php think run` 内置服务器(开发期)
@@ -35,6 +39,8 @@
## 部署方式
<!-- B-route 提示你的项目实际用哪个模式default=根目录 php think rundocker 模式=cd source/stack/<mode> && docker compose up -d。把你的实际选择记录在下面。-->
(描述本项目如何部署到生产环境。例如:
- 源码 `git pull` + `composer install`

View File

@@ -10,14 +10,19 @@
- `default/` 必须与代码库默认行为一致
- 默认行为相关文件变更时需同步更新 `source/stack/default/` 对应文件
## 运行模式判断
## 运行模式判断B-route 工作流)
执行 `php think` 命令前,必须先判断当前运行模式。
执行 `php think` 命令前,必须先判断当前运行模式。B-route 工作流下,模式由"当前所在目录"决定,不再覆盖仓库根目录。
**判断方式**:检查仓库根目录是否存在 `docker-compose.yaml`
**判断方式**:检查仓库根目录是否含 Docker 文件(`Dockerfile` / `docker-compose.yaml`)。
- **存在**Docker 模式。宿主机可能没有 PHP不能依赖 `php think` 来检测。所有 `php think` 命令前缀改为 `docker compose exec ulthon_admin`
- 示例:`docker compose exec ulthon_admin php think tools:http:call`
- **不存在**:宿主机模式。直接执行 `php think`
也可读取 `source/stack/stack.json` 了解所有可用模式及其说明
- **根目录无 Docker 文件default 模式)**:宿主机直接执行 `php think`
- 默认基线行为是 `php think run`ThinkPHP 内置服务器)。
- 启动开发服务器:在仓库根目录执行 `php think run`
- **需要 Docker 模式**:进入对应模式目录启动栈。
- 启动:`cd source/stack/<mode>``docker compose up -d`
- 模式目录内的 `docker-compose.yaml` 是该模式的栈定义bind mount 通常指向仓库根目录。
- 在容器外执行 `php think``docker compose -f source/stack/<mode>/docker-compose.yaml exec <service> php think ...`,或在模式目录内 `docker compose exec <service> php think ...`
- 示例:`docker compose -f source/stack/docker-dev/docker-compose.yaml exec ulthon_admin php think tools:http:call`
- **可用模式**见 `source/stack/stack.json``source/stack/README.md`default / docker-serve / docker-dev / full / author 等)。
- **判断技巧**:如果不确定当前是否处于容器内,看 `pwd` 是否在仓库根、根目录有无 `Dockerfile``docker ps` 是否有相关容器在跑。容器内执行 `php think` 不需要前缀。