Skip to content

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 と実装のバインドを行います。