在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