Подключение к базе данных в Zend View Helper - PullRequest
4 голосов
/ 28 февраля 2012

Является ли хорошей практикой использование картографов баз данных в Zend View Helper? Потому что в моем случае этот помощник делает мне блок <div>, который постоянно меняется в реальном времени и должен отображаться во всех представлениях, которые есть в моем приложении. Я не могу дать этому объекту загрузку его из базы данных в контроллерах и назначить его на просмотр каждый раз

Было бы очень полезно, если бы кто-то мог рассказать о хороших методах программирования, которым следует следовать при работе с помощниками Zend View, такими как:

  • Если все в порядке, назначить что-либо для представления в помощниках вида с помощью $this->view->variable = ... ;
  • Если все в порядке для создания и использования моделей в View Helpers.
  • Если все в порядке, чтобы использовать методы, доступные для Zend_View внутри View Helper, например, выполнив $this->view->baseUrl('...');

1 Ответ

2 голосов
/ 28 февраля 2012

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

Что касается вашей первой точки зрения, вам не нужно ничего присваивать представлению, вы просматриваете помощник, который должен return выводить HTML непосредственно в представление.

По первому вопросу вы могли бы создать View Helper, специализирующийся на этой задаче, чтобы вы могли использовать его в качестве простого прокси между помощниками вида и сопоставителями.Один помощник вида позволит вам получить доступ к любому мапперу, а другие помощники вида могут использовать этот помощник вида, чтобы получить маппер.

Давайте посмотрим, что Трюгве Реенскауг думает о MVC:

Модели

Модели представляют собой знания.Модель может быть отдельным объектом (довольно неинтересным) или структурой объектов.

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

Представления

Представление - это (визуальное) представление своей модели.Это обычно выделяет некоторые атрибуты модели и подавляет другие.Таким образом, он действует как фильтр представления.

Представление присоединяется к его модели (или части модели) и получает данные, необходимые для представления, из модели, задавая вопросы.Он также может обновить модель, отправив соответствующие сообщения.Все эти вопросы и сообщения должны быть в терминологии модели, поэтому представление должно знать семантику атрибутов модели, которую оно представляет.

Контроллеры

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

...