shaneen31/russian-doll-caching

V0.2.0 2016-03-04 17:04 UTC

This package is not auto-updated.

Last update: 2024-09-14 18:36:49 UTC


README

版本 0.2.0

主要功能

  • 允许缓存页面片段。
  • 缓存单个对象。
  • 缓存由更小的对象组成的单个大对象(级联缓存)。
  • 磁盘缓存。
  • 使用 Redis 缓存。

如何使用

使用磁盘缓存

Laravel 缓存帖子示例。

缓存单个对象

在你的视图中

<?php
use RussianDollCaching\Cache;
use RussianDollCaching\DiskCache;

$cache = new Cache(new DiskCache());
?>
<?php foreach($posts->get() as $post): ?>
    <?php $cache->cache($post, function() use ($post){ ?>
        some code
    <?php }); ?>
<?php endforeach; ?>

级联缓存

在你的模型中

public static function lastUpdated(){
        return self::orderBy('updated_at', 'DESC')->select('id', 'updated_at')->first();
    }
    

在你的视图中

<?php
use RussianDollCaching\Cache;
use RussianDollCaching\DiskCache;

$cache = new Cache(new DiskCache());
?>

<?php $cache->cache(['posts', \App\Post::lastUpdated()], function() use ($cache, $posts){   ?>
    <?php foreach($posts->get() as $post): ?>
        <?php $cache->cache($post, function() use ($post){ ?>
            some code
        <?php }); ?>
    <?php endforeach; ?>
<?php }); ?>

使用 Redis 缓存

Laravel 缓存帖子示例。

缓存单个对象

在你的视图中

<?php
use RussianDollCaching\Cache;
use RussianDollCaching\RedisCache;

$cache = new Cache(new RedisCache());
?>
<?php foreach($posts->get() as $post): ?>
    <?php $cache->cache($post, function() use ($post){ ?>
        some code
    <?php }); ?>
<?php endforeach; ?>

级联缓存

在你的模型中

public static function lastUpdated(){
        return self::orderBy('updated_at', 'DEST')->select('id', 'updated_at')->first();
    }
    

在你的视图中

<?php
use RussianDollCaching\Cache;
use RussianDollCaching\RedisCache;

$cache = new Cache(new RedisCache());
?>
<?php $cache->cache(['posts', \App\Post::lastUpdated()], function() use ($cache, $posts){   ?>
    <?php foreach($posts->get() as $post): ?>
        <?php $cache->cache($post, function() use ($post){ ?>
            some code
        <?php }); ?>
    <?php endforeach; ?>
<?php }); ?>

许可证

RussianDollCaching 的代码根据 GNU/GPL V3 许可证的条款分发(见 LICENSE)。