trapvincenzo/static-view-cache

为 Laravel 4 的静态视图缓存

1.0 2015-03-06 09:15 UTC

This package is not auto-updated.

Last update: 2024-09-24 09:06:07 UTC


README

# Laravel4 静态视图缓存 (Blade 模板引擎)

假设需要在另一个视图中包含一个视图(带有动态数据)

<ul>
	@include('cardetail', ['car' => $car])
</ul>

对于这个语句,Blade 引擎会为子视图创建一个缓存文件,如下所示

<ul>
	<?php echo $__env->make('car', $car, array_except(get_defined_vars(), array('__data', '__path')))->render(); ?>;
</ul>

这意味着对于页面的每次请求,都会执行渲染代码。

## 循环问题 当包含在循环内部时,每次迭代执行代码可能会导致页面渲染延迟。

## 缓存子视图 StaticViewCache 所做的,是保存包含真实数据的生成的子视图的缓存版本。这样做,渲染代码将只执行一次(以创建缓存)。

## 使用方法 将 StaticViewCache 作为 Composer 包安装,在你的 composer.json 文件中添加以下行

"trapvincenzo/static-view-cache": "dev-master"

然后运行 composer update 命令更新你的 vendor 文件夹。

注册服务提供者(app/config/app.php)

'providers' => array(
	...
	'Trapvincenzo\StaticViewCache\StaticViewCacheServiceProvider'
	...
)

将 @include 语句替换为

StaticViewCache::render($viewName, $id, $data , $path )

字符串 $viewName 视图名称

字符串 $id 视图的唯一标识符(对于每个迭代不同)

数组 $data 在视图内部使用的数据

[可选] 字符串 $path 在 storage_folder().'/views/' 内定义路径(默认 'static')

享受吧!