PageRenderTime 50ms CodeModel.GetById 25ms RepoModel.GetById 0ms app.codeStats 0ms

/library/cache/drivers/php.php

http://github.com/pateketrueke/tetlphp
PHP | 53 lines | 33 code | 12 blank | 8 comment | 3 complexity | 6b88950bf80453e026d9470ff0feb707 MD5 | raw file
  1. <?php
  2. /**
  3. * PHP based cache adapter
  4. */
  5. /**#@+
  6. * @ignore
  7. */
  8. define('CACHE_DRIVER', 'PHP');
  9. /**#@-*/
  10. cache::implement('free_all', function () {
  11. foreach (dir2arr(TMP, '--cache-php*') as $cache_file) {
  12. @unlink(TMP.DS.$cache_file);
  13. }
  14. });
  15. cache::implement('fetch_item', function ($key) {
  16. if (is_file($cache_file = TMP.DS.'--cache-php'.md5($key))) {
  17. $test = include $cache_file;
  18. if ( ! is_array($test)) {
  19. return @unlink($path);
  20. } elseif (time() < $test[0]) {
  21. return $test[1];
  22. }
  23. @unlink($cache_file);
  24. }
  25. return FALSE;
  26. });
  27. cache::implement('store_item', function ($key, $set = array(), $ttl = 0) {
  28. $cache_file = TMP.DS.'--cache-php'.md5($key);
  29. $vars = var_export($set, TRUE);
  30. $code = sprintf('<' . '?php return array(%s, %s);', time() + $ttl, $vars);
  31. return write($cache_file, $code);
  32. });
  33. cache::implement('delete_item', function ($key) {
  34. if (is_file($cache_file = TMP.DS.'--cache-php'.md5($key))) {
  35. return @unlink($cache_file);
  36. }
  37. });
  38. cache::implement('check_item', function ($key) {
  39. return ! is_false(cache::fetch_item($key));
  40. });
  41. /* EOF: ./library/cache/drivers/php.php */