Je réponds à cette question parce que je suis revenu au même code, 10 mois plus tard, et il me confondre à nouveau.
J'étais dans le contexte d'un module par défaut, d'un contrôleur d'index et d'une action d'index.
Je voulais faire écho à un texte simple comme un moyen rapide de voir ce qui se passait dans le code:
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');
}
problème était - le texte fait écho était tout simplement pas présenter.
Cela a fonctionné dans d'autres contrôleurs, mais pas celui-ci. Ça me rendait fou.
Maintenant, j'ai résolu le problème. J'utilisais une disposition spéciale pour cette action de contrôle particulière ... une «mise en page d'accueil».
Dans ma mise en page d'accueil, je ne restituais aucun script de vue. Tout le contenu et le design étaient dans la mise en page. Étant donné que la page d'accueil est une page spéciale et unique, il n'était pas nécessaire de séparer en une vue en deux étapes. Pour cette raison, je n'avais aucune raison d'avoir besoin d'un script de vue. Mais, j'ai créé un 'views \ scripts \ index \ index.phtml' pour empêcher ZF de se plaindre. Je ne l'ai cependant pas rendu dans ma mise en page - car ce n'était pas nécessaire.
Toute sortie renvoyée en écho est capturée dans le layout()->content
(automatiquement affectée par la mise en page du segment de réponse 'par défaut'). Parce que je ne faisais pas écho à ce segment, il se comportait comme si le texte écho était supprimé.
Pour résoudre le problème, je devais simplement m'assurer que je reproduisais le segment de contenu.
-à-dire
<html>
<head>
...
</head>
<body>
... my home page html...
<?php echo $this->layout()->content ?>
... my home page html...
</body>
</html>
qui, avec mon texte de débogage étant repris aussi ... viderait que:
... my home page html...
<h1>hello world</h1>
... my home page html...
êtes-vous, y compris en fait le fichier MyClass dans votre application, ou instanciation MyClass() comme un objet n'importe où dans votre application? – Mark
Je fais les deux. Inclure le fichier en premier et actualiser une page pour voir si le texte est sorti et parfois aussi instancier la classe en tant qu'objet. C'était vraiment juste un exemple de «texte de débogage». –
à tous les répondeurs jusqu'à présent - merci, je vais essayer ces suggestions sur –