質問: CakePHP3にModelless Formという機能があることを知り,ソースコードを見てみると,以下のような説明がありました. > > Form abstraction used to create forms not tied to ORM backed models, > > or to other permanent datastores. Ideal for implementing forms on top of > > API services, or contact forms. > > > ここで,`not tied to ORM backed models`としているのはなぜでしょうか. Modelless FormはComponentのようにコントローラへ依存することもないため,コントローラだけでなく, シェル等からも容易に利用できる,Componentを置き換え得る機能のような印象を受けました. しかし,モデルの利用を制限している理由がわからず,またそれについて触れた資料も見つけられませんでした. よろしくお願い致します.
回答: > > 私の解釈違いかもしれないのですが,「モデル等の永続的ストアがフォームの背後にある場合に加え,ない場合にも利用できる」という解釈が正しいのでしょうか. > > > そうですね。そういう解釈で正しいと思います。 通常、モデルがあるフォームは、モデルに定義されたスキーマ情報やバリデーションと連携して動くのですが、モデルが存在しないようなフォームでは、これらを定義するよい方法がなかったので、`Modelless Form`という機能としてFormクラスが追加されたんだと思います。 CakePHPのフォームを生成するView側の処理はFormHelperが担当していますが、これと連携して動く、モデルからORMなどの機能を外したのがFormクラスという感じでしょうか。