在Zend的框架教程,我可以看到形式處理代碼等表單處理代碼是否需要抽象? (Zend_Form的)
if ($request->isPost()) {
$formData = $request->getPost();
$code = $request->getParam("code");
$url = $request->getParam("url");
if ($form->isValid($formData)) {
// here goes code to determine insert/update action,
//retrive record data
//and perform relative database operation
此代碼爲重複許多形式。我試圖讓表單處理更好,但不要過度設計它。到目前爲止,我已經將這些代碼從控制器移到Form對象中。 但是代碼仍然針對不同的表單類型重複。
我的問題是這樣的 - 我應該更喜歡保持表單處理代碼重複或編寫一些將由所有子類使用的ProcessSubmit()Zend_Form方法嗎? 我有經驗,抽象並不總是好的,有時你最終會同步兩個與開始不同的類。
ZF示例演示重複的代碼,所以我想知道這種重複性是否合理(至少對於3-4個小型網站)或者需要通過一切手段避免。
P.S.這個任務似乎很常見,我不知道我是否做了雙重工作,並且已經有一個用於CRUD特定表單處理的ZF類。
您不應將該代碼移動到表單類。這顯然是應用程序流程,因此它屬於控制器。 代碼重複是什麼意思?如果您在表單的子類中指定了字段,則應通過調用'isValid()'自動進行驗證。 – Franz 2009-11-18 12:32:19
我的意圖是將表單控件的處理移動到Form類中的是「瘦控制器/胖模型」的概念,例如, http://blueparabola.com/blog/fat-models-are-good。也許我的錯誤是將代碼移動到Form中,而我應該將表單/記錄處理移動到模型中。你怎麼看待這件事? – AlexA 2009-11-18 15:53:27