# CLAUDE.md — 2meet Data Optimizer (核心) > 父環境:`/var/www/Studio/wp-local-dev/CLAUDE.md` 與 `/var/www/Studio/wp-local-dev30/CLAUDE.md` > 全域:`~/.claude/CLAUDE.md`(含 Karpathy Guidelines) --- ## Reset recovery 1. 讀本檔(CLAUDE.md)取得 plugin 上下文 2. 讀 [PLAN.md](PLAN.md) 看當前 phase 進度 3. 接續 PLAN.md 的下一個未完成步驟 --- ## Plugin 概述 **2meet-data-optimizer** 是純通用 WordPress 反 EAV 引擎,從 `wp-data-optimizer v2.16.0` 提煉。 - 不依存 HivePress / WooCommerce / LatePoint / 2meet-* - 4 entity 通用(post/user/term/comment) - 整合層全部交給 11 個獨立 AddOn 完整拆分計畫見 `~/.claude/plans/wp-data-optimizer-2meet-data-optimizer-zesty-liskov.md`。 --- ## 開發紀律 ### 命名前綴 - 類別:`TMDO_*` - 函式:`tmdo_*` - 常數:`TMDO_VERSION` / `TMDO_PATH` / `TMDO_URL` / `TMDO_FILE` - Hook:`tmdo_*`(同時 dual-fire `wpdo_*` 過渡) - Text-domain:`2meet-data-optimizer` ### 對外相容 - 主要 API 公開:`TMDO_API`、`TMDO_Schema_Registry`、`TMDO_Entity_Registry`、`TMDO_Custom_Table_Registry`、`TMDO_Feature_Flags`、`TMDO_DB`、`TMDO_Crypto`、`TMDO_Logger` - **必加 `class_alias( 'TMDO_*', 'WPDO_*' )`** 對應全部上述 8 個類別 - **必 dual-fire** `tmdo_*` 與 `wpdo_*` 共 9 個 hook(見 plan § 11.2) ### 反 EAV 紅線(CI gate 守門) - ❌ `SELECT FROM wp_postmeta / wp_usermeta / wp_termmeta / wp_commentmeta`(除一次性 migration / cron) - ❌ 硬編碼表名 `wp_postmeta` / `wp_options`,必走 `TMDO_DB::table()` - ❌ 主動 `add_action('updated_postmeta', ...)`(與 Hook Bus 衝突) - ❌ 單外掛 `autoload=yes` 的 `wp_options` > 30 條 - ❌ 直接 `unserialize()`,必走 `TMDO_Safe_Unserialize::run()` ### 安全 - 所有 SQL 走 `$wpdb->prepare()` - 動態 IN 子句用 `array_fill('%d')` 動態佔位符 - DROP TABLE 前白名單 + prefix 雙重驗證 - `manage_options` capability check + nonce - 輸出 `esc_html()` / `esc_attr()` / `esc_url()` ### Crypto - `TMDO_Crypto`:AES-256-GCM AEAD(`enc:v2:` 格式),向後相容讀取 `enc:v1:` (CBC) - 加密 wp_options 內 webhook 密鑰 --- ## 任務管理 - 開始任務前更新 `PLAN.md` - 每完成一步驟,標記 ✅ - 重要決策 / 踩坑記錄在 PLAN.md「Lessons learned」 --- ## 常用指令 ```bash # Lint find . -name "*.php" | grep -v vendor | grep -v tests | xargs php -l # Unit tests ./vendor/bin/phpunit --configuration phpunit.xml # Integration tests(需本機 MariaDB) ./vendor/bin/phpunit --configuration phpunit-integration.xml # WP-CLI wp --path=/var/www/Studio/wp-local-dev30 tmdo status wp --path=/var/www/Studio/wp-local-dev30 tmdo doctor wp --path=/var/www/Studio/wp-local-dev30 tmdo benchmark hot_post --samples=200 # 打包(必經 10 終檢) /var/www/Studio/wp-local-dev/scripts/package-plugin.sh 2meet-data-optimizer ``` --- ## 邊界 - ✅ 本外掛觸碰:4-entity 反 EAV 引擎、zone 表、migration、wizard、admin、CLI、REST、snapshot、diagnostic、notifications - ❌ 本外掛**不**觸碰:HP / WC / LP / 2meet-* 邏輯(全部交給 AddOn) - ❌ 本外掛**不**註冊:HP listing 欄位、WC product 欄位、SSO sso group、infocards postmeta(全部交給 AddOn) --- ## Phase 進度 ``` Phase 0 ✅ 骨架建立 (2026-05-15) Phase 1 ⬜ Core v0.1.0 (W1-W2) ``` 詳見 `PLAN.md`。