trapvincenzo / static-view-cache
为 Laravel 4 的静态视图缓存
1.0
2015-03-06 09:15 UTC
Requires
- php: >=5.4.0
- illuminate/support: 4.2.*
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')
享受吧!