나는 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');
}
문제가되었다
나는 코드에서 무슨 일이 벌어지고 있는지 확인하기 위해 빠른 방법으로 몇 가지 간단한 텍스트를 에코 싶었다.
다른 컨트롤러에서 작동했지만이 컨트롤러는 작동하지 않습니다. 나를 미치게 만들었다.
지금 - 문제를 해결했습니다.
저는이 특정 컨트롤 액션 인 '홈페이지 레이아웃'을 위해 특별한 레이아웃을 사용하고있었습니다.
내 홈 페이지 레이아웃에서 뷰 스크립트를 렌더링하지 않았습니다. 모든 콘텐츠와 디자인이 레이아웃에 포함되었습니다. 홈 페이지는 특별하고 고유 한 페이지이므로 2 단계보기로 분리 할 필요가 없습니다. 이런 이유로 나는 뷰 스크립트가 필요한 이유가 없었습니다. 그러나 ZF가 불평하는 것을 막기 위해 'views \ scripts \ index \ index.phtml'을 만들었습니다. 그러나 나는 레이아웃에서 렌더링하지 않았습니다. 왜냐하면 필요하지 않았기 때문입니다.
모든 에코 출력은 layout()->content
('기본'응답 세그먼트에서 레이아웃에 의해 자동 할당 됨)에 캡처됩니다. 세그먼트를 반향 출력하지 않았기 때문에 에코 텍스트가 표시되지 않는 것처럼 동작합니다.
문제를 해결하려면 콘텐츠 세그먼트를 반향 출력했는지 확인해야했습니다.
즉
<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...
는 당신이 실제로 응용 프로그램에 MyClass에 파일을 포함하거나, MyClass에 인스턴스화있다() 애플리케이션의 어디서나 객체로 사용할 수 있습니까? – Mark
나는 둘 다하고있다. 파일을 먼저 포함하고 텍스트를 출력하는지 확인하기 위해 페이지를 새로 고치고 클래스를 객체로 인스턴스화하는 경우도 있습니다. 이것은 실제로 '일부 디버그 텍스트'의 예입니다. 지금까지 모든 답변자에게 –
- 감사합니다. 나는이 제안을 시도 할 것입니다. –