ec-cube icon indicating copy to clipboard operation
ec-cube copied to clipboard

FormTypeのコーディング見直し

Open chihiro-adachi opened this issue 7 years ago • 0 comments

概要(Overview)

FormTypeの実装にばらつきがあるため、以下のように実装を見直します。

ディレクトリ構造

  • Admin:管理画面で使用するもの
    • CustomerType
    • OrderType
    • ...
  • Front:フロント画面で使用するもの
  • Install:Webインストーラで使用するもの
  • Master:Master系

PriceTypeやNameTypeなど、項目レベルで共通して利用するものはルートに配置します

BlockPrefixについて

  • 現状、命名にばらつきがある
  • 重複すると、form_themeのレンダリングに支障が出る場合がある
  • Eccube\Form\Type\Admin\CustomerType -> eccube_admin_customerを命名規約とする
  • AbstractType::getBlockPrefixをオーバライドしたクラスを用意

ラベル/ツールチップ

  • ラベルは必ず定義する(多言語化のメッセージIDを指定)
  • ツールチップは管理画面FormTypeの場合に指定する(多言語化のメッセージIDを指定)

文字長のバリデーション

  • 文字列(Text, TextArea)の場合
    • varcharは、255 or 4000(エンティティのカラム定義に合わせる)
    • textは99999(lltextlen相当)    - 業務的に意味のあるモノ(郵便番号等)はその仕様に合わせる  
  • 数値(Integer, Number)の場合  - GreatorThan/LessThan等でチェックする   - smattint上限/int上限を指定  - 桁数チェックは行わない(カンマなどが入る場合があり判定が難しい)

html属性

  • requiredで自動NotBlankの廃止( #1577 )
  • requiredはデフォルトtrueなので、'required' => trueは削除
  • max_lengthは文字列の項目(TextType, TextAreaType)の場合必ず指定する

その他

  • クラス名FQDNはXXX::classを使う

chihiro-adachi avatar Nov 08 '17 07:11 chihiro-adachi