Paradigm Shift Design

ISHITOYA Kentaro's blog.

pages.scaffold周りのリファクタリング,その2

というわけで,整理
現状の設定ファイルに書いている項目は,scaffoldSettings.tableSettings.以下の

  1. 親エンティティ([EntityName].parent)
  2. validator([EntityName].properties.[PropertyName].validators)
  3. 制約([EntityName].properties.[PropertyName].constraint)
  4. assist([EntityName].assists)
  5. ページ遷移([EntityName].transition)
  6. デフォルト値([EntityName].defaults)
  7. プロパティを表示する/しない([EntityName].excludes)
  8. 子エンティティを表示する/しない([EntityName].nochildren)

それから,Entityには,

  1. TABLE(S2Daoのテーブルアノテーション)
  2. LABEL(TABLEの名前)
  3. REMARK(TABLEの備考)
  4. [PropertyName]_LABEL(プロパティの名前)
  5. [PropertyName]_REMARK(プロパティの備考)
  6. names(id+nameで表現される値の名前)
  7. initialized
  8. blank

がある.
で,これをリファクタリングして・・・

  1. i18ngettextではなくて,Entity毎に設定ファイルに書く.
  2. id<->nameの変換は,staticではなくconstで
  3. initializedとblankは親クラスへ
  4. GenerationGapパターンでAutoとエンティティを生成

で,問題は,ページごとに必要な設定と共通の設定をどこに書くか.

<?php
class PSD_AdministratorPage extends Ficus_ScaffoldPage{
    /**
     * @Bean('Administrator')
     */
    protected $person;
}
?>

と書いておいて,AdministratorEntityがAutoPersonsEntityを継承してValidatorが設定されていればいいんじゃないかと思った.
けど・・・

もうちょっと考えないといけないなぁ.