работать с layout.phtml в Zend Framework 1

Я следую этому руководству (Начало работы с Zend Framework 1.11): http://akrabat.com/wp-content/uploads/Getting-Started-with-Zend-Framework.pdf

на стр. 10, zf-tutorial/application/layouts/scripts/layout.phtml, код изменился с:

<?php echo $this->layout()->content; ?>

to:

<?php
$this->headMeta()->appendHttpEquiv('Content-Type', 'text/html;charset=utf-8');
$this->headTitle()->setSeparator(' - ');
$this->headTitle('Zend Framework Tutorial');
echo $this->doctype(); ?>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<?php echo $this->headMeta(); ?>
<?php echo $this->headTitle(); ?>
</head>
<body>
<div id="content">
<h1><?php echo $this->escape($this->title); ?></h1>
<?php echo $this->layout()->content; ?>
</div>
</body>

Вопрос:

  1. вывод тот же, зачем менять код?

  2. после запуска исходного кода: <?php echo $this->layout()->content; ?>, в исходном коде страницы: есть такой вывод: <!DOCTYPE HTML PUBLIC.... после запуска модифицированного кода, в исходном коде страницы <!DOCTYPE HTML PUBLIC.... должно появиться дважды, один из $this->headMeta()..., один из <?php echo $this->layout()->content; ?>, но он появляется только один раз, почему?


person user2243528    schedule 24.04.2013    source источник


Ответы (1)


На странице 10 у вас есть ответ на ваш вопрос:

Общий HTML-код: макеты

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

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

person Rolando Isidoro    schedule 24.04.2013