2016-09-19 2 views
1

Мне интересно, как правильно проверять форму, которая включает в себя несколько типов входов.Если контроллер формы включает в себя несколько контроллеров ввода

Если форма последовательность инструкций, которые Validate каждый вход по одному:

class FormController{  

    function validateForm(){ 

      if(!$_POST['post_input_name']) return $error; 

      if(!$_POST['post_input_birthday']) return $error; 
    } 
} 

или должен контроллер формы включать в себя один контроллер на каждый вход?

class FormController{  

    function __construct($input_name_controller, $input_birthday_controller){ 
      .... 
    } 

    function validateForm(){ 

      $this->getInputNameController()->validate($_POST); 

      $this->getInputBirthdayController()->validate($_POST); 
    } 
} 

Я думаю, что второе решение лучше, потому что контроллеры общих полей могут быть повторно использованы в других типах формы и синтаксис кода кажется более понятным для меня этот пути.

Любое мнение об этом приветствуется. Спасибо

+1

Контроллеры обычно являются просто клеем. Они редко используются повторно. Попытка сделать их более универсальными и повторными, как правило, означает, что вы пытаетесь создать абстракцию, чтобы решить совершенно другую проблему, чем то, что должен был решить контроллер. Например, проверка может быть полностью отдельной абстракцией от вашего контроллера. Это не обязательно должно быть эксклюзивным для кода контроллера. – Sherif

ответ

0

Я начал работать с OpenCart около недели назад и все его контроллеры имеют код как

... 

     if (isset($this->request->get['sort'])) { 
      $sort = $this->request->get['sort']; 
     } else { 
      $sort = 'p.sort_order'; 
     } 

     if (isset($this->request->get['order'])) { 
      $order = $this->request->get['order']; 
     } else { 
      $order = 'ASC'; 
     } 

     if (isset($this->request->get['page'])) { 
      $page = $this->request->get['page']; 
     } else { 
      $page = 1; 
     } 
... 

так я думаю, что ваше первое решение имеет место быть

-1

Использование библиотеки проверки как valitron или validation.

+0

Вопрос не в использовании сторонней библиотеки, а в том, чтобы лучше всего использовать контроллеры для проверки формы. – Vincent

+0

Я не понимаю смысла и лучшей практики, которую вы предлагаете здесь. – Bonzo

Смежные вопросы