/lenasys/trunk

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/lenasys/trunk

« back to all changes in this revision

Viewing changes to codeigniter/system/libraries/Cache/Cache.php

  • Committer: Erik Wikström
  • Date: 2013-04-09 09:09:31 UTC
  • mfrom: (21 lenasys)
  • mto: (21.1.1 lenasys)
  • mto: This revision was merged to the branch mainline in revision 22.
  • Revision ID: wikxen@gmail.com-20130409090931-9jcs9kzg8et0912g
Remerged! Changed password hashes to VARCHAR(32)

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
2
 
/**
3
 
 * CodeIgniter
4
 
 *
5
 
 * An open source application development framework for PHP 4.3.2 or newer
6
 
 *
7
 
 * @package             CodeIgniter
8
 
 * @author              ExpressionEngine Dev Team
9
 
 * @copyright   Copyright (c) 2006 - 2012 EllisLab, Inc.
10
 
 * @license             http://codeigniter.com/user_guide/license.html
11
 
 * @link                http://codeigniter.com
12
 
 * @since               Version 2.0
13
 
 * @filesource  
14
 
 */
15
 
 
16
 
// ------------------------------------------------------------------------
17
 
 
18
 
/**
19
 
 * CodeIgniter Caching Class 
20
 
 *
21
 
 * @package             CodeIgniter
22
 
 * @subpackage  Libraries
23
 
 * @category    Core
24
 
 * @author              ExpressionEngine Dev Team
25
 
 * @link                
26
 
 */
27
 
class CI_Cache extends CI_Driver_Library {
28
 
        
29
 
        protected $valid_drivers        = array(
30
 
                'cache_apc', 'cache_file', 'cache_memcached', 'cache_dummy'
31
 
        );
32
 
 
33
 
        protected $_cache_path          = NULL;         // Path of cache files (if file-based cache)
34
 
        protected $_adapter                     = 'dummy';
35
 
        protected $_backup_driver;
36
 
        
37
 
        // ------------------------------------------------------------------------
38
 
 
39
 
        /**
40
 
         * Constructor
41
 
         *
42
 
         * @param array
43
 
         */
44
 
        public function __construct($config = array())
45
 
        {
46
 
                if ( ! empty($config))
47
 
                {
48
 
                        $this->_initialize($config);
49
 
                }
50
 
        }
51
 
 
52
 
        // ------------------------------------------------------------------------
53
 
 
54
 
        /**
55
 
         * Get 
56
 
         *
57
 
         * Look for a value in the cache.  If it exists, return the data 
58
 
         * if not, return FALSE
59
 
         *
60
 
         * @param       string  
61
 
         * @return      mixed           value that is stored/FALSE on failure
62
 
         */
63
 
        public function get($id)
64
 
        {       
65
 
                return $this->{$this->_adapter}->get($id);
66
 
        }
67
 
 
68
 
        // ------------------------------------------------------------------------
69
 
 
70
 
        /**
71
 
         * Cache Save
72
 
         *
73
 
         * @param       string          Unique Key
74
 
         * @param       mixed           Data to store
75
 
         * @param       int                     Length of time (in seconds) to cache the data
76
 
         *
77
 
         * @return      boolean         true on success/false on failure
78
 
         */
79
 
        public function save($id, $data, $ttl = 60)
80
 
        {
81
 
                return $this->{$this->_adapter}->save($id, $data, $ttl);
82
 
        }
83
 
 
84
 
        // ------------------------------------------------------------------------
85
 
 
86
 
        /**
87
 
         * Delete from Cache
88
 
         *
89
 
         * @param       mixed           unique identifier of the item in the cache
90
 
         * @return      boolean         true on success/false on failure
91
 
         */
92
 
        public function delete($id)
93
 
        {
94
 
                return $this->{$this->_adapter}->delete($id);
95
 
        }
96
 
 
97
 
        // ------------------------------------------------------------------------
98
 
 
99
 
        /**
100
 
         * Clean the cache
101
 
         *
102
 
         * @return      boolean         false on failure/true on success
103
 
         */
104
 
        public function clean()
105
 
        {
106
 
                return $this->{$this->_adapter}->clean();
107
 
        }
108
 
 
109
 
        // ------------------------------------------------------------------------
110
 
 
111
 
        /**
112
 
         * Cache Info
113
 
         *
114
 
         * @param       string          user/filehits
115
 
         * @return      mixed           array on success, false on failure      
116
 
         */
117
 
        public function cache_info($type = 'user')
118
 
        {
119
 
                return $this->{$this->_adapter}->cache_info($type);
120
 
        }
121
 
 
122
 
        // ------------------------------------------------------------------------
123
 
        
124
 
        /**
125
 
         * Get Cache Metadata
126
 
         *
127
 
         * @param       mixed           key to get cache metadata on
128
 
         * @return      mixed           return value from child method
129
 
         */
130
 
        public function get_metadata($id)
131
 
        {
132
 
                return $this->{$this->_adapter}->get_metadata($id);
133
 
        }
134
 
        
135
 
        // ------------------------------------------------------------------------
136
 
 
137
 
        /**
138
 
         * Initialize
139
 
         *
140
 
         * Initialize class properties based on the configuration array.
141
 
         *
142
 
         * @param       array   
143
 
         * @return      void
144
 
         */
145
 
        private function _initialize($config)
146
 
        {        
147
 
                $default_config = array(
148
 
                                'adapter',
149
 
                                'memcached'
150
 
                        );
151
 
 
152
 
                foreach ($default_config as $key)
153
 
                {
154
 
                        if (isset($config[$key]))
155
 
                        {
156
 
                                $param = '_'.$key;
157
 
 
158
 
                                $this->{$param} = $config[$key];
159
 
                        }
160
 
                }
161
 
 
162
 
                if (isset($config['backup']))
163
 
                {
164
 
                        if (in_array('cache_'.$config['backup'], $this->valid_drivers))
165
 
                        {
166
 
                                $this->_backup_driver = $config['backup'];
167
 
                        }
168
 
                }
169
 
        }
170
 
 
171
 
        // ------------------------------------------------------------------------
172
 
 
173
 
        /**
174
 
         * Is the requested driver supported in this environment?
175
 
         *
176
 
         * @param       string  The driver to test.
177
 
         * @return      array
178
 
         */
179
 
        public function is_supported($driver)
180
 
        {
181
 
                static $support = array();
182
 
 
183
 
                if ( ! isset($support[$driver]))
184
 
                {
185
 
                        $support[$driver] = $this->{$driver}->is_supported();
186
 
                }
187
 
 
188
 
                return $support[$driver];
189
 
        }
190
 
 
191
 
        // ------------------------------------------------------------------------
192
 
 
193
 
        /**
194
 
         * __get()
195
 
         *
196
 
         * @param       child
197
 
         * @return      object
198
 
         */
199
 
        public function __get($child)
200
 
        {
201
 
                $obj = parent::__get($child);
202
 
 
203
 
                if ( ! $this->is_supported($child))
204
 
                {
205
 
                        $this->_adapter = $this->_backup_driver;
206
 
                }
207
 
 
208
 
                return $obj;
209
 
        }
210
 
        
211
 
        // ------------------------------------------------------------------------
212
 
}
213
 
// End Class
214
 
 
215
 
/* End of file Cache.php */
216
 
/* Location: ./system/libraries/Cache/Cache.php */
 
 
b'\\ No newline at end of file'