4.1 Начало работы с Zend_Layout. Введение

Zend, “Getting Started with Zend_Layout. Introduction”, public translation into Russian from English More about this translation.

Translate into another language.

При создании сайта с помощью MVC-компонент Zend Framework`a, как правило, ваши скрипты вида содержат в себе только часть HTML, которая отвечает за отображение результата требуемого действия. Например, если у вас есть действие "users/list", вы можете создать скрипт вида, который осуществляет перебор (итерацию) пользователей и представляет собой неупорядоченный список:

01. <h2>Пользователи</h2>

02. <ul>

03. <?php if (!count($this->users)): ?>

04. <li>Пользователи не найдены</li>

05. <?php else: ?>

06. <?php foreach ($this->users as $user): ?>

07. <li>

08. <?php echo $this->escape($user->fullname) ?>

09. (<?php echo $this->escape($user->email) ?>)

10. </li>

11. <?php endforeach ?>

12. <?php endif ?>

13. </ul>

Так как это всего лишь фрагмент HTML-страницы, то он не является валидным. Тут отсутствуют указание DOCTYPE, открытие тегов HTML и BODY. Возникает вопрос, где они будут созданы?

В ранних версиях Zend Framework`a, разработчики часто создавали скрипты "шапка" и "подвал", которые затем вызывались в каждом скрипте вида, для ренедернига. Хотя эта методика работает, но в последствии её будет достаточно сложно преобразовывать (рефакторить), или на основе её создавать комлексное содержание (контент), включающее в себя вызов нескольких действий.

Паттерн проектирования "Двухэтапное представление" отвечает многим из поставленных задач. Согласно данного шаблона проектирования, в начале создается "приложение" вида, в которую после интегрируется "страница" вида, затем это все отображается клиенту. Страницу на вашем вэб-узле можно рассматривать как шаблон или макет, который имеет общие элементы, отображаемые на разных страницах.

Zend_Layout, в составе Zend Framewprk, реализует паттерн "Двухэтапного представления".

Original (English): Getting Started with Zend_Layout. Introduction

Translation: © S.Voytovich, antdmi .

translatedby.com crowd

Like this translation? Share it or bookmark!