namibia
df0489e1eeeeab5a9bd44e1d84fce49924fe1bac
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 |
<?php /** * Class Minify_Cache_XCache * * @link http://xcache.lighttpd.net/ * @package Minify */ /** * XCache-based cache class for Minify * {@see http://xcache.lighttpd.net/wiki/XcacheApi XCache API} * * <code> * Minify::setCache(new Minify_Cache_XCache()); * </code> * * @package Minify * @author Elan Ruusamäe <glen@delfi.ee> **/ class Minify_Cache_XCache { /** * Create a Minify_Cache_XCache object, to be passed to * Minify::setCache(). * * @param int $expire seconds until expiration (default = 0 * meaning the item will not get an expiration date) */ public function __construct($expire = 0) { $this->_exp = $expire; } /** * Write data to cache. * * @param string $id cache id * @param string $data * @return bool success */ public function store($id, $data) { return xcache_set($id, "{$_SERVER['REQUEST_TIME']}|{$data}", $this->_exp); } /** * Get the size of a cache entry * * @param string $id cache id * @return int size in bytes */ public function getSize($id) { if (! $this->_fetch($id)) { return false; } return (function_exists('mb_strlen') && ((int)ini_get('mbstring.func_overload') & 2)) ? mb_strlen($this->_data, '8bit') : strlen($this->_data); } /** * Does a valid cache entry exist? * * @param string $id cache id * @param int $srcMtime mtime of the original source file(s) * @return bool exists */ public function isValid($id, $srcMtime) { return ($this->_fetch($id) && ($this->_lm >= $srcMtime)); } /** * Send the cached content to output * * @param string $id cache id */ public function display($id) { echo $this->_fetch($id) ? $this->_data : ''; } /** * Fetch the cached content * * @param string $id cache id * @return string */ public function fetch($id) { return $this->_fetch($id) ? $this->_data : ''; } private $_exp = null; // cache of most recently fetched id private $_lm = null; private $_data = null; private $_id = null; /** * Fetch data and timestamp from xcache, store in instance * * @param string $id * @return bool success */ private function _fetch($id) { if ($this->_id === $id) { return true; } $ret = xcache_get($id); if (false === $ret) { $this->_id = null; return false; } list($this->_lm, $this->_data) = explode('|', $ret, 2); $this->_id = $id; return true; } } |
Commits for namibiapublic/min/lib/Minify/Cache/XCache.php
Revision | Author | Commited | Message |
---|---|---|---|
df0489 ... | Mark | Fri 14 Oct, 2016 10:01:00 +0000 | initial commit |