Appearance
Adapter層とWordPress依存の隔離
プロジェクト構成(概要) の詳細です。
Handler や Controller が WordPress の関数(register_rest_route, add_action 等)に直接依存すると、テスタビリティが下がります。このプロジェクトでは Adapter パターンで WordPress 依存を Infrastructure 層に集約しています。
構成
- Interface/Adapter:
RestApiAdapterInterface(REST ルート登録)、ActionHookAdapterInterface(アクションフック登録)等を定義。 - Infrastructure/WordPress: 上記インターフェースの実装。
WordPressRestApiAdapter,WordPressActionHookAdapter,WordPressPermissionChecker,WordPressAsyncLoadingPermissionChecker等が WordPress API を呼び出す。
Handler は Adapter インターフェース経由でのみ REST 登録・フック登録を行い、WordPress の型や関数に直接依存しません。コンテナ(core_src/config/di.php)で Interface と実装のバインドを行います。