~desarrollokumbia/kumbia/0.5

« back to all changes in this revision

Viewing changes to library/kumbia/cache/FileCache.php

  • Committer: Deivinson Tejeda
  • Date: 2009-01-01 20:30:45 UTC
  • Revision ID: deivinsontejeda@gmail.com-20090101203045-q9xgzpp0a6vaomdh
actualizando repositorio launchpad

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<?php
 
2
/**
 
3
 * Kumbia PHP Framework
 
4
 *
 
5
 * LICENSE
 
6
 *
 
7
 * This source file is subject to the GNU/GPL that is bundled
 
8
 * with this package in the file docs/LICENSE.txt.
 
9
 * It is also available through the world-wide-web at this URL:
 
10
 * http://www.kumbia.org/license.txt
 
11
 * If you did not receive a copy of the license and are unable to
 
12
 * obtain it through the world-wide-web, please send an email
 
13
 * to kumbia@kumbia.org so we can send you a copy immediately.
 
14
 *
 
15
 * @category  Kumbia
 
16
 * @package   Cache
 
17
 * @copyright Copyright (c) 2005-2007 Andres Felipe Gutierrez (andresfelipe at vagoogle.net)
 
18
 * @copyright Copyright (C) 2007-2007 Roger Jose Padilla Camacho(rogerjose81 at gmail.com)
 
19
 * @copyright Copyright (C) 2007-2009 Deivinson Jose Tejeda Brito(deivinsontejeda at gmail.com)
 
20
 * @license   http://www.kumbia.org/license.txt GNU/GPL
 
21
 */
 
22
 
 
23
/**
 
24
 * Clase que implementa un componente de cacheo
 
25
 * 
 
26
 * @category  Kumbia
 
27
 * @package   Cache
 
28
 * @copyright Copyright (c) 2005-2007 Andres Felipe Gutierrez (andresfelipe at vagoogle.net)
 
29
 * @copyright Copyright (C) 2007-2007 Roger Jose Padilla Camacho(rogerjose81 at gmail.com)
 
30
 * @copyright Copyright (C) 2007-2009 Deivinson Jose Tejeda Brito(deivinsontejeda at gmail.com)
 
31
 * @license   http://www.kumbia.org/license.txt GNU/GPL
 
32
 */
 
33
class FileCache extends Object
 
34
{
 
35
    /**
 
36
     * Obtiene el nombre de archivo a partir de un id y grupo
 
37
     *
 
38
     * @param string $id
 
39
     * @param string $group
 
40
     * @return string
 
41
     **/
 
42
    protected static function _getFilename($id, $group)
 
43
    {
 
44
        return 'cache_'.md5($id).'.'.md5($group);
 
45
    }
 
46
        /**
 
47
         * Carga un elemento cacheado
 
48
         *
 
49
         * @param string $id
 
50
         * @param string $group
 
51
         * @param int $lifetime tiempo de vida en forma timestamp de unix
 
52
         * @return mixed
 
53
         */
 
54
        public static function get($id, $group, $lifetime) 
 
55
    {
 
56
        $file = 'temp/cache/'.self::_getFilename($id, $group);
 
57
                if(file_exists($file)){
 
58
                        if($lifetime){
 
59
                $expire_time = $lifetime - time();
 
60
                                if($expire_time + filemtime($file) < time()){
 
61
                                        return null;
 
62
                                }
 
63
                        }
 
64
                        return file_get_contents($file);
 
65
                } else {
 
66
                        return null;
 
67
                }
 
68
    }
 
69
        /**
 
70
         * Guarda un elemento en la cache con nombre $id y valor $value
 
71
         *
 
72
         * @param string $id
 
73
         * @param string $group
 
74
         * @param mixed $value
 
75
         * @return boolean
 
76
         */
 
77
        public static function save($id, $group, $value)
 
78
    {
 
79
        return @file_put_contents('temp/cache/'.self::_getFilename($id, $group), $value);
 
80
    }
 
81
        /**
 
82
         * Limpia la cache
 
83
         *
 
84
         * @param string $group
 
85
         * @return boolean
 
86
         */
 
87
        public static function clean($group=false)
 
88
    {
 
89
        $pattern = $group ? 'temp/cache/*.'.md5($group) : 'temp/cache/*';
 
90
        foreach (glob($pattern) as $filename) {
 
91
            if(!@unlink($filename)) {
 
92
                return false;
 
93
            }
 
94
        }
 
95
    }
 
96
        /**
 
97
         * Elimina un elemento de la cache
 
98
         *
 
99
         * @param string $id
 
100
         * @param string $group
 
101
         * @return string
 
102
         */
 
103
        public static function remove($id, $group)
 
104
    {
 
105
        return @unlink('temp/cache/'.self::_getFilename($id, $group));
 
106
    }
 
107
}
 
 
b'\\ No newline at end of file'