Skip to content

各層と責務

責務
ハンドラー(Handler/)リクエスト受付・ルーティング・入力検証のみを行う。Controller を new せず、コンストラクタで受け取る(core_src/config/di.php で組み立て・注入する)。REST API や Action の登録は Adapter 経由で委譲。
ショートコード(ShortCode/)ShortCodeServiceProvider により WordPress のショートコードとして登録されるエントリーポイント。コンテナから注入済みのコントローラーを呼び出す。必要に応じてアセット(JS/CSS)読み込み。
コントローラー(Controller/)リクエスト受付。コンバーターによる入力変換・検証の利用。サービス層の呼び出し。エラーハンドリング。ビュー層へのデータ渡し。
コンバーター(Converter/)ショートコード属性の入力変換・検証。デフォルト値の設定。コントローラー用 DTO への変換。エラー時の例外スロー。
サービス(Service/)ビジネスロジックの実装。リポジトリからのデータ取得。データの加工・計算。DTO でのレスポンス返却。
リポジトリ(Model/Repository/)データベースアクセス。SQL クエリの実行。エンティティへのマッピング。
エンティティ(Model/Entity/)データベース項目定数の定義。データ構造の表現。
DTO(Model/Dto/)層間のデータ転送。レスポンスデータの構造化。
ビュー(View/)HTML レンダリング。Twig テンプレートの処理。CSS/JS の出力。

ビュー層と Twig(補足)

  • Twig の位置づけ: 公開側 HTML の多くは Twigcore_src/View/templates/ 配下)で組み立てる。技術スタックの定義は プロジェクト構成とアーキテクチャ の「技術スタック」を正とする。
  • 画面設計書との分担: docs/design/公開画面/PUB-* では 表示項目とデータの出所(ユーザーに見える結果) に限定する。テンプレートエンジン名・.twig の構文・ファイルパス は本節および実装(core_src/View/)を参照する。
  • 日別記事シングル(例): DailyArticleTemplateController と周辺サービスが post meta 等を読み、ビュー用データを組み立てたうえでテンプレートから HTML を生成する。生成後の文字列に do_shortcode() を適用する流れは ショートコードのライフサイクルPUB-001 日別記事(シングル) の「概要」で扱う。