Php 使用动态占位符实现全页缓存的方法

Php 使用动态占位符实现全页缓存的方法,php,zend-framework,Php,Zend Framework,我想尝试创建类似Zend的服务器页面缓存的东西。我想要实现的是存储页面输出,所以我想它应该是直接的html,但是可以在页面中插入一些动态数据。您总是可以使用ajax加载动态数据。 例子: 如果用户登录并准备投票或做其他事情。输出缓存是一个大问题。做对了,你需要考虑一下设计 这里有两种方法。代码示例仅用于解释,它不是有效的解决方案 块缓存和动态组合。也许是最好的办法。把你的页面分成几个块。每个块应由单独的函数/类生成。您可以使用Zend_Cache_Frontend_*对象来缓存这些块。一旦应用程

我想尝试创建类似Zend的服务器页面缓存的东西。我想要实现的是存储页面输出,所以我想它应该是直接的html,但是可以在页面中插入一些动态数据。

您总是可以使用ajax加载动态数据。 例子:
如果用户登录并准备投票或做其他事情。

输出缓存是一个大问题。做对了,你需要考虑一下设计

这里有两种方法。代码示例仅用于解释,它不是有效的解决方案

块缓存和动态组合。也许是最好的办法。把你的页面分成几个块。每个块应由单独的函数/类生成。您可以使用Zend_Cache_Frontend_*对象来缓存这些块。一旦应用程序知道要显示什么,就可以在控制器中使用缓存块和动态部分组合输出。 具有子字符串替换的整页缓存。如果不希望将页面划分为块,也可以使用Zend_cache_Frontend_*缓存整个页面,然后使用PHP str函数替换或插入动态部分。您需要捕获视图的输出,而不是让框架自动将其发送到文档中,以了解如何更改它。
这不合适,因为页面被分成了很多块,例如,我希望在用户交互过程中有一些代码可以更新。

    class CachedController extends Zend_Action_Controller
    {

    public function indexAction()
    {
        $this->_view->leftBlock = $this->leftBlock();
        $this->_view->rightBlock = $this->rightBlock();
    }

    protected function leftBlock()
    {
        // prepare left block, can use Zend_View if you like
        // use Zend_Cache to cache the block 
    }


    protected function rightBlock()
    {
        // prepare left block, can use Zend_View if you like
        // use Zend_Cache to cache the block
    }

    }
/* VIEW SCRIPT */
<html>
  <body>
    <div class="left">
      Left cached block here
      <?php echo $this->leftBlock; ?>
    </div>
    <div class="main">
      Do Your dynamic part here
    </div>
    <div class="right">
      Right cached block here
      <?php echo $this->rightBlock; ?>
    </div>
  </body>
</html>