【问题标题】:How to cache layout content in Zend Framework如何在 Zend Framework 中缓存布局内容
【发布时间】:2010-11-07 17:38:18
【问题描述】:

您将如何在 Zend Framework 中实现布局内容的缓存?

layout.phtml 我做:$this->layout->content 并且我希望这个变量的内容被缓存。布局中的其他小部件是实时的(或以其他方式缓存)。

最好的选择是:

  • 静态缓存(最快)
  • 页面缓存

我的页面已经有唯一的页面 id (canonical),所以它可以用作页面缓存标签。

可能看起来我必须重载布局的 __get 属性。

我正在尝试做一些类似于 SO 布局的事情(用户面板在顶部,其余为所有人缓存)。
我认为,网站应该在没有 JavaScript 的情况下工作。

【问题讨论】:

  • 我猜 $this->layout->content 包含控制器的视图内容?所以你想缓存一个动作的结果?
  • @Fge 所有操作的结果(或几乎所有操作,部分排除)。

标签: zend-framework caching optimization layout page-caching


【解决方案1】:

您可能想看看Front Controller Cache pluginweierophinney 描述的内容。问题可能是您不希望脚本在缓存命中时停止。所以你不用exit; 脚本,你可以在插件中使用$request->setDispatched(true)。 (对于每个不同的可缓存对象,您都需要一个新的请求对象)。
另一种方法可能是您在插件中不使用dispatchLoopStartup,而是使用preDispatch,并在那里重置调度。
他们要走的路实际上取决于您如何加载所有其他东西(无论是否缓存)。 (例如,ActionStack 向调度程序推送一个新请求)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多