From c300d56aeff0efc8512c136e213a5ba2400f0e2e Mon Sep 17 00:00:00 2001 From: wpdev Date: Fri, 31 Jul 2026 09:13:14 +0800 Subject: [PATCH] =?UTF-8?q?docs(plan):=20=E8=A8=98=E9=8C=84=E6=89=93?= =?UTF-8?q?=E5=8C=85=E5=BE=8C=E9=9C=80=E9=87=8D=E8=B7=91=20composer=20inst?= =?UTF-8?q?all=20=E7=9A=84=E8=B8=A9=E5=9D=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01TbG1keQQ7XBa7qMQY16KCY --- PLAN.md | 1 + 1 file changed, 1 insertion(+) diff --git a/PLAN.md b/PLAN.md index 9ea9012..eb2da05 100644 --- a/PLAN.md +++ b/PLAN.md @@ -255,6 +255,7 @@ - `composer update` 後 autoload 出現 `WPDO_Entity_Adapter_Interface` 三重宣告警告(`includes/adapters/interface-entity-adapter.php`、`back-compat/interface-wpdo-entity-adapter-alias.php`、`back-compat/trait-wpdo-anti-eav-aware-alias.php`)→ 階段 4 E2 要刪掉重複的那一份。 - `TMDO_FSM_GUARD_DISABLED` 兩個 test bootstrap 原本都沒 define,但 `class-tmdo-feature-flags.php:128` 會檢查它 → 強制 FSM 轉換的測試會被 guard 擋掉(A 在 v3.4.6 踩過同一個坑)。 - integration 測試需要 `TMDO_TEST_DB_PASS`(或 `WPDO_TEST_DB_PASS`)環境變數,DB 為本機 `wp_wpdo_test`。 +- **跑完 `scripts/ci-package.sh` 或 `package-plugin.sh` 後要重跑 `composer install`**:打包流程內含 `composer install --no-dev`,會把 `vendor/bin/{phpunit,phpcs,phpstan}` 移掉,之後任何測試指令都會 "No such file or directory"。 - **A 不是照抄對象,有兩處自身缺陷不可照搬**: 1. `A/includes/engine/class-wpdo-hook-bus.php:511,522` 傳 3 個 string 給 `Logger::warning( string $event, array $context )` → A 有 `strict_types`,mass-clear 路徑必炸。B 用正確簽章。 2. `A/admin/class-wpdo-dashboard-widget.php:191` 的 `wpdo_postmeta_cleanup` 仍是 `wp_nonce_url` GET 連結,但其 handler 已只收 POST → 該按鈕在 A 是壞的。B 改成 form。