PHP: Zend_Layout: где писать бизнес-логику? - PullRequest
1 голос
/ 02 февраля 2010

В большинстве проектов я использую несколько скриптов макета.

Иногда мне нужны некоторые данные в моих макетах, которые зависят от макета, а не от страницы. Какой макет используется, хотя, зависит от страницы.

Таким образом, начальной загрузкой или actioncontroller будут хорошие места для выбора макета. Но ИМХО они будут , а не хорошими местами для ввода данных, ожидаемых конкретным макетом.

Единственное другое место, о котором я могу подумать, это просто написать некоторую бизнес-логику в самом сценарии просмотра макета. Хотя я бы тоже этого не делал:)

Где вы пишете свою бизнес-логику для макета?

- ОБНОВЛЕНИЕ :

Бизнес-логика, зависящая от макета, может быть;

  • имя пользователя вошедшего в систему пользователя
  • количество новых сообщений в почтовом ящике пользователя
  • случайно "ты знал ..?" Кончик

1 Ответ

2 голосов
/ 02 февраля 2010

Подобные вещи лучше всего делать из ViewHelper

class ViewHelper_RandomTip
{
    public function randomTip()
    {
         $tip = TipsModel::getRandom();
         return "<div><h1>Random Tip</h1><p>$tip</p></div>");
    }
    // ...
}

Затем в макете используйте их с

echo $this->randomTip();

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

Пожалуйста, также посмотрите следующие вопросы:

И посмотреть, как Zend Framework выполняет эту работу для дополнительная информация .

...