Итак, у меня возник вопрос об общей организации кода фреймворка Zend в отношении макета.
Мой макет в основном таков:
(LAYOUT.PHTML)
<div id='header'>
<?= $this->Layout()->header ?>
</div>
<div id='main'>
<?= $this->Layout()->main ?>
</div>
<div id='footer'>
<?= $this->Layout()->footer ?>
</div>
и так далее и тому подобное. Теперь, чтобы мой код в моем заголовке был отделен от кода основного и кода нижнего колонтитула, я создал папку для своего представления, содержащую header.phtml, main.phtml, footer.phtml. Затем я использую этот код для назначения содержимого header.phtml в $ this-> layout () -> header:
(INDEX.PHTML)
$this->Layout()->header = file_get_contents('index/header.phtml');
$this->Layout()->main = file_get_contents('index/main.phtml');
$this->Layout()->footer = file_get_contents('index/footer.phtml');
Это отлично работало, но я достиг точки, когда я больше не хочу, чтобы main был статическим HTML. Я хотел бы иметь возможность вставлять некоторые значения с помощью PHP. Итак, в моем контроллере в indexAction я хочу иметь возможность загружаться из моей базы данных и помещать значения в index / main.phtml. Есть ли способ сделать это без реструктуризации моего сайта?
Если нет, есть способ сделать это, чтобы я мог:
Возможность помещать код в разные разделы моего макета, такие как Layout () -> header, Layout-> footer.
Разделяйте эти части по разным файлам, чтобы их было легко найти и упорядочить, например, мой index / footer.phtml, index / main.phtml и т. Д.
Не нужно помещать этот код в кавычки без необходимости, чтобы превратить его в строку для передачи в Layout () -> header и т. Д.
Спасибо вам, ребята, за вашу помощь.
-Итан