CrossPHP
  • Namespace
  • Class
  • Download

Namespaces

  • Cross
    • Auth
    • Cache
      • Driver
      • Request
    • Core
    • DB
      • Connecter
      • Drivers
      • SQLAssembler
    • Exception
    • Http
    • I
    • Lib
      • Document
    • Module
    • MVC
    • Runtime
  • None

Classes

  • Cross\Auth\CookieAuth
  • Cross\Auth\SessionAuth
  • Cross\Cache\Driver\FileCacheDriver
  • Cross\Cache\Driver\MemcacheDriver
  • Cross\Cache\Driver\RedisDriver
  • Cross\Cache\Request\FileCache
  • Cross\Cache\Request\Memcache
  • Cross\Cache\Request\RedisCache
  • Cross\Cache\RequestCache
  • Cross\Core\Annotate
  • Cross\Core\Application
  • Cross\Core\ArrayMap
  • Cross\Core\Config
  • Cross\Core\CrossArray
  • Cross\Core\Delegate
  • Cross\Core\FrameBase
  • Cross\Core\Helper
  • Cross\Core\HttpAuth
  • Cross\Core\Loader
  • Cross\Core\Rest
  • Cross\Core\Router
  • Cross\DB\Connecter\BaseConnecter
  • Cross\DB\Connecter\MySQLConnecter
  • Cross\DB\Connecter\PgSQLConnecter
  • Cross\DB\Connecter\SQLiteConnecter
  • Cross\DB\DBFactory
  • Cross\DB\Drivers\CouchDriver
  • Cross\DB\Drivers\MongoDriver
  • Cross\DB\Drivers\PDOSqlDriver
  • Cross\DB\SQLAssembler\MySQLAssembler
  • Cross\DB\SQLAssembler\PgSQLAssembler
  • Cross\DB\SQLAssembler\SQLAssembler
  • Cross\DB\SQLAssembler\SQLiteAssembler
  • Cross\Http\Request
  • Cross\Http\Response
  • Cross\Lib\Array2XML
  • Cross\Lib\Document\CallTree
  • Cross\Lib\Document\CallTreeToHTML
  • Cross\Lib\Document\HTML
  • Cross\Lib\StringToPHPStream
  • Cross\Module\SQLModule
  • Cross\MVC\Controller
  • Cross\MVC\Module
  • Cross\MVC\View
  • Cross\Runtime\ClosureContainer

Interfaces

  • Cross\I\CacheInterface
  • Cross\I\HttpAuthInterface
  • Cross\I\PDOConnecter
  • Cross\I\RequestCacheInterface
  • Cross\I\RouterInterface
  • Cross\I\SqlInterface

Exceptions

  • Cross\Exception\CacheException
  • Cross\Exception\CoreException
  • Cross\Exception\CrossException
  • Cross\Exception\FrontException

Functions

  • ascLogo
  • line
  • tBody
  • th
  • tHead
  1 <?php
  2 /**
  3  * Cross - a micro PHP 5 framework
  4  *
  5  * @link        http://www.crossphp.com
  6  * @license     MIT License
  7  */
  8 
  9 namespace Cross\Cache\Request;
 10 
 11 use Cross\I\RequestCacheInterface;
 12 use Cross\Cache\Driver\RedisDriver;
 13 use Cross\Exception\CoreException;
 14 
 15 /**
 16  * @author wonli <wonli@live.com>
 17  * Class RequestRedisCache
 18  * @package Cross\Cache\Request
 19  */
 20 class RedisCache implements RequestCacheInterface
 21 {
 22     /**
 23      * @var array
 24      */
 25     protected $config;
 26 
 27     /**
 28      * 缓存key
 29      *
 30      * @var string
 31      */
 32     protected $cacheKey;
 33 
 34     /**
 35      * 有效时间
 36      *
 37      * @var int
 38      */
 39     protected $expireTime = 3600;
 40 
 41     /**
 42      * @var bool
 43      */
 44     protected $compress = false;
 45 
 46     /**
 47      * @var \Redis
 48      */
 49     protected $driver;
 50 
 51     /**
 52      * 设置缓存key和缓存有效期
 53      *
 54      * @param array $option
 55      * @throws CoreException
 56      */
 57     function __construct(array $option)
 58     {
 59         if (empty($option['key'])) {
 60             throw new CoreException('请指定缓存KEY');
 61         }
 62 
 63         if (isset($option['expire_time'])) {
 64             $this->expireTime = &$option['expire_time'];
 65         }
 66 
 67         if (isset($option['compress'])) {
 68             $this->compress = &$option['compress'];
 69         }
 70 
 71         $this->cacheKey = &$option['key'];
 72         $this->driver = new RedisDriver($option);
 73     }
 74 
 75     /**
 76      * 设置request请求
 77      *
 78      * @param string $value
 79      * @return mixed|void
 80      */
 81     function set($value)
 82     {
 83         if ($this->compress) {
 84             $value = gzcompress($value);
 85         }
 86 
 87         $this->driver->setex($this->cacheKey, $this->expireTime, $value);
 88     }
 89 
 90     /**
 91      * 返回request的内容
 92      *
 93      * @return bool|mixed|string
 94      */
 95     function get()
 96     {
 97         $content = $this->driver->get($this->cacheKey);
 98         if ($this->compress) {
 99             $content = gzuncompress($content);
100         }
101 
102         return $content;
103     }
104 
105     /**
106      * 检查缓存key是否有效
107      *
108      * @return bool
109      */
110     function isValid()
111     {
112         return $this->driver->ttl($this->cacheKey) > 0;
113     }
114 
115     /**
116      * 设置配置
117      *
118      * @param array $config
119      */
120     function setConfig(array $config = array())
121     {
122         $this->config = $config;
123     }
124 
125     /**
126      * 获取缓存配置
127      *
128      * @return mixed
129      */
130     function getConfig()
131     {
132         return $this->config;
133     }
134 }
135 
CrossPHP API documentation generated by ApiGen