Я отвечаю на этот вопрос, потому что я вернулся к тому же коду 10 месяцев спустя, и это снова смутило меня.
Я был в контексте модуля по умолчанию, контроллера индекса и действия индекса.
Я хотел повторить простой текст, чтобы увидеть, что происходит в коде:
class IndexController extends Zend_Controller_Action
{
public function indexAction()
{
//home page
echo '<h1>hello world</h1>';
//set the special home page layout
$this->_helper->layout()->setLayout('home-page');
}
Проблема была в том, что отраженный текст просто не появлялся.
Это работало в других контроллерах, но не в этом. Это сводило меня с ума.
Теперь - я решил проблему.
Я использовал специальный макет для этого конкретного управляющего действия ... «макет домашней страницы».
В макете моей домашней страницы я не рендерил сценарий просмотра. Весь контент и дизайн был в макете. Поскольку домашняя страница - это специальная, уникальная страница, нет необходимости разделять ее на два этапа. По этой причине у меня не было причин нуждаться в скрипте вида. Но я создал 'views \ scripts \ index \ index.phtml', чтобы ZF не жаловался. Однако я не отображал его в моем макете, потому что он не был нужен.
Любой отраженный вывод записывается в layout()->content
(автоматически назначается макетом из сегмента ответа «по умолчанию»). Поскольку я не повторял этот сегмент, он вел себя так, как будто эхо-текст подавлялся.
Чтобы решить эту проблему, я просто должен был убедиться, что я повторяю сегмент контента.
* * 1 022 * т.е. 1023 *
<html>
<head>
...
</head>
<body>
... my home page html...
<?php echo $this->layout()->content ?>
... my home page html...
</body>
</html>
, который, с моим отладочным текстом, тоже отображается ... будет выглядеть как:
... my home page html...
<h1>hello world</h1>
... my home page html...