Zend Framework:将完整页面保存到文件中

时间:2012-12-28 00:33:58

标签: zend-framework layout save render

我需要将基于Zend的网站的主导航/标题添加到第三方产品的顶部。第三方产品允许我将服务器上的任何文件包含在其布局中。我的想法是我会运行一个cron,它会将Zend布局的标题部分保存到每晚硬编码的html文件中。然后只需阅读第三部分的相应文件。

所以我试过了:

$ htmlcontent = $ this-> view-> render('file.phtml');

然后将$ htmlcontent保存到文件中。它正确地保存了file.phtml中的所有内容,但排除了布局/标题,这是我真正需要的部分。我如何将生成的所有内容(包括布局)保存到文件中。

感谢 夏季

1 个答案:

答案 0 :(得分:0)

视图脚本只是整个布局的一部分。在正常的Zend Framework设置中,您将拥有一个布局,其中包含您的视图脚本(例如,file.phtml)。布局文件如下所示:

   <html>
      <body>
          <div>My header here</div>
          <?php echo $this->layout()->content; ?>
          <div>I have a footer here.</div>
      </body>
   </html>

$ this-&gt; layout() - &gt;内容将根据您所在的页面(例如,调用fileAction()时的file.phtml)保存您的视图脚本。

因此,要访问页面的完整HTML,您有两种选择:

  1. 使用旧的file_get_contents并将完整呈现的HTML转换为带有http请求的字符串。

    $htmlcontent = file_get_contents('http://yourdomain/index/file');
    
  2. 获取Zend Framework的布局实例,为其分配内容,并将其呈现为字符串,如下所示:

     $layout = $this->_helper->layout->getLayoutInstance();
     $layout->content = $this->view->render('file.phtml');
     $htmlcontent =  $layout->render();