доктрина Zend-Framework и шаблон MVC: какой слой должен связывать данные между моделями и формами? - PullRequest
5 голосов
/ 31 мая 2010

Я изучаю Zend Framework и Doctrine.

Мне интересно, как лучше соединять формы с моделями и наоборот.

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

В других случаях удобно иметь методы в классе модели, который подготавливает данные для форм. Допустим, у него может быть метод, который возвращает массив, подготовленный для элемента select-options, поэтому этот метод будет полезен для многих форм.

Я хотел бы иметь последовательность и всегда хранить эту логику в одном слое.

Я думаю, что диспетчер - не то место, потому что я хочу, чтобы все было ясно и просто.

Какова ваша практика для достижения этой цели (связать модели с формами)?

- Я прихожу к выводу, что я должен подготовить свои модели для всех моих потребностей. Если мне придется иметь дело со многими моделями, у меня будет уровень обслуживания (это правильный термин?), Который соединит эти модели. Таким образом, модель или служба будут иметь методы для гидратации данных для форм. И он сможет принимать данные из значений формы.

1 Ответ

2 голосов
/ 04 июня 2010

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

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

Только мои 2 цента ..

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