Подключение к базе данных в Zend View Helper

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

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

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

person ShayanK    schedule 28.02.2012    source источник
comment
Нет, я не использую для этого ajax, но div, о котором я говорю, создается каждый раз, когда запрос какой-либо страницы выполняется любым пользователем, вошедшим в систему.   -  person ShayanK    schedule 28.02.2012


Ответы (1)


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

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

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

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

Модели

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

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

Просмотры

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

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

Контроллеры

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

person Liyali    schedule 28.02.2012
comment
В моем первом пункте я спрашивал о средствах сопоставления баз данных, таких как классы, которые напрямую связываются с базой данных. Мой вопрос в том, нормально ли иметь подключение к базе данных и картографы в помощниках просмотра, а не в моделях. - person ShayanK; 28.02.2012