XCache.php 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. <?php
  2. namespace Qii\Cache;
  3. /**
  4. * XCache
  5. *
  6. * @author Jinhui Zhu<jinhui.zhu@live.cn> 2015-10-26 21:51
  7. *
  8. */
  9. class XCache implements Intf
  10. {
  11. const VERSION = '1.2';
  12. /**
  13. * 默认的缓存策略
  14. *
  15. * @var array
  16. */
  17. protected $_default_policy = array(
  18. /**
  19. * 缓存有效时间
  20. *
  21. * 如果设置为 0 表示缓存总是失效,设置为 null 则表示不检查缓存有效期。
  22. */
  23. 'life_time' => 900,
  24. );
  25. /**
  26. * 构造函数
  27. *
  28. * @param 默认的缓存策略 $default_policy
  29. */
  30. public function __construct(array $default_policy = null)
  31. {
  32. if (isset($default_policy['life_time'])) {
  33. $this->_default_policy['life_time'] = (int)$default_policy['life_time'];
  34. }
  35. }
  36. /**
  37. * 写入缓存
  38. *
  39. * @param string $id
  40. * @param mixed $data
  41. * @param array $policy
  42. */
  43. public function set($id, $data, array $policy = null)
  44. {
  45. $life_time = !isset($policy['life_time']) ? (int)$policy['life_time'] : $this->_default_policy['life_time'];
  46. xcache_set($id, $data, $life_time);
  47. }
  48. /**
  49. * 读取缓存,失败或缓存撒失效时返回 false
  50. *
  51. * @param string $id
  52. *
  53. * @return mixed
  54. */
  55. public function get($id)
  56. {
  57. if (xcache_isset($id)) {
  58. return xcache_get($id);
  59. }
  60. return false;
  61. }
  62. /**
  63. * 删除指定的缓存
  64. *
  65. * @param string $id
  66. */
  67. public function remove($id)
  68. {
  69. xcache_unset($id);
  70. }
  71. public function clean()
  72. {
  73. }
  74. }