2009-08-14 2 views
0

Глядя на некоторые советы \ улучшениям на структуру моего приложениясоветы Дизайн для Zend приложения

пользователь входит в систему и представлен приветственное сообщение и меню опций каждый вариант указывает на тот же контроллер, например OptionController, но с различными действиями

/опции/а
/опции/Защитой

OptionController.php 
{ 
abcAction() 
defAction() 
} 

причина, почему я различные действиями потому, что каждый вариант будет требуется другая форма

, когда форма визуализируется, и пользователь вводит вход, запрос отправляется на контроллер проверки снова с другим действием для каждого параметра. Мне нужна базовая форма проверки + пользовательская бизнес-логика

У меня есть «работа», но не думаю, что это хороший способ сделать это. Мысли?

+0

Вы спрашиваете, плохо ли только один контроллер с множеством действий? – smack0007

+0

№ Это больше с обработкой формы. Должен ли я иметь действие для отображения формы + действие для обработки формы в том же контроллере? Если проверка не удалась, я хотел бы повторно отобразить форму с соответствующей ошибкой проверки – db83

ответ

2

Я бы рекомендовал структуру, в которой вы обобщать не искусство (дисплей, проверенную) задания, но, в ваших словах, «варианты»

, например (:

controller: abcController 
actions: addAction() 
      editAction() 
      listAction() 
      viewAction() 
      deleteAction() 


controller: defController 
actions: addAction() 
      editAction() 
      listAction() 
      viewAction() 
      deleteAction() 

конфиги для ваших форм (включая проверку) должны быть в собственных классах, расширенных из Zend_Form, которые хранятся в его собственной папке, например APPLICATION_PATH. '/ forms'. (см. ZF - автозагрузчик) отображение и проверка форм могут находиться в одном и том же действии, i usaly разделите их на добавление и редактирование (но используя тот же класс формы для обоих)

Задача, в которой вы нуждаетесь во всех контроллерах, лучше всего реализовать как действие или просмотр помощников.

+0

, возможно, было бы лучше разделить каждую опцию на собственный контроллер. благодаря – db83