В руководствах Zend Frameworks я вижу код обработки форм, например
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
Этот код повторяется для многих форм. Я пытаюсь сделать обработку форм лучше, но не перегружать ее. До сих пор я переместил этот код из контроллеров в объект формы.
Но код все еще дублирует для различных типов форм.
У меня такой вопрос: следует ли мне предпочитать, чтобы код обработки форм дублировал, или написать какой-нибудь метод ProcessSubmit () Zend_Form, который будет использоваться всеми подклассами?
У меня был опыт, что абстракция не всегда хороша, и иногда вы заканчиваете синхронизацией двух классов, которые отличались от начала.
Примеры ZF демонстрируют дублированный код, поэтому мне интересно, оправдана ли эта двойственность (по крайней мере, для небольших сайтов 3-4 форм) или ее следует избегать любыми способами.
P.S. Эта задача кажется довольно распространенной, мне интересно, если я выполняю двойную работу, и уже есть класс ZF для обработки форм, специфичных для CRUD.