OpenEBI, OpenPNEでsfFormを活用するときのためのメモ

OpenPNE で sfForm を活用するときにハマりそうなところとその対策について考えたので、個人的なメモ程度に書き残しておきます。

実際に対処したりとかそういうことはこれからなので、まあ真に受けたりとかはしないでくださいというか。

「登録時は入力しないが編集時は入力必須」など、アクションによってバリデーションを変化させる場合

  1. アクションクラス内で、インスタンス作成時に一部ウィジェットを動的に追加
  2. 自動生成される sfFormPropel の派生クラスを、アクション側(アクションクラスもしくはYAML)で、必須もしくは任意であるかどうかを必ず設定するよう拡張(設定しない場合は無視)
  3. スキーマ定義を工夫し、アクションによってバリデーションを変えざるを得ない状況を極力回避する

c_member_profile など、動的にバリデーションルールを生成するもの

  1. 自動的に生成される sfFormPropel の派生クラスを使わずに、独自に sfForm の派生クラスを作成することで対処する(いやこのくらいだったら自動生成されたファイルに記述を加えるだけでいけるな)

c_admin_config, c_member_config など、アプリ側に意味の定義を任せる汎用的な設定テーブルの扱い

  1. 自動的に生成される sfFormPropel の派生クラスを使わずに、独自に sfForm の派生クラスを作成することで対処する

携帯版など入力ページを複数遷移しなければいけない場合や、確認画面など

  1. どうしよう。。。アクション側でなんとかするしかない?

削除用アクションにパラメータで渡す id などの検証

  1. これもアクション側でなんとかするしかない?


こんなもんか。

他にあれば追記。