Passed
Push — 1.0.0-dev ( 9c9ab7...066288 )
by nguereza
02:38
created
core/classes/cache/FileCache.php 3 patches
Indentation   +289 added lines, -289 removed lines patch added patch discarded remove patch
@@ -1,312 +1,312 @@
 block discarded – undo
1 1
 <?php
2
-	defined('ROOT_PATH') or exit('Access denied');
3
-	/**
4
-	 * TNH Framework
5
-	 *
6
-	 * A simple PHP framework using HMVC architecture
7
-	 *
8
-	 * This content is released under the GNU GPL License (GPL)
9
-	 *
10
-	 * Copyright (C) 2017 Tony NGUEREZA
11
-	 *
12
-	 * This program is free software; you can redistribute it and/or
13
-	 * modify it under the terms of the GNU General Public License
14
-	 * as published by the Free Software Foundation; either version 3
15
-	 * of the License, or (at your option) any later version.
16
-	 *
17
-	 * This program is distributed in the hope that it will be useful,
18
-	 * but WITHOUT ANY WARRANTY; without even the implied warranty of
19
-	 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
20
-	 * GNU General Public License for more details.
21
-	 *
22
-	 * You should have received a copy of the GNU General Public License
23
-	 * along with this program; if not, write to the Free Software
24
-	 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
25
-	*/
2
+    defined('ROOT_PATH') or exit('Access denied');
3
+    /**
4
+     * TNH Framework
5
+     *
6
+     * A simple PHP framework using HMVC architecture
7
+     *
8
+     * This content is released under the GNU GPL License (GPL)
9
+     *
10
+     * Copyright (C) 2017 Tony NGUEREZA
11
+     *
12
+     * This program is free software; you can redistribute it and/or
13
+     * modify it under the terms of the GNU General Public License
14
+     * as published by the Free Software Foundation; either version 3
15
+     * of the License, or (at your option) any later version.
16
+     *
17
+     * This program is distributed in the hope that it will be useful,
18
+     * but WITHOUT ANY WARRANTY; without even the implied warranty of
19
+     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
20
+     * GNU General Public License for more details.
21
+     *
22
+     * You should have received a copy of the GNU General Public License
23
+     * along with this program; if not, write to the Free Software
24
+     * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
25
+     */
26 26
 
27
-	class FileCache implements CacheInterface{
27
+    class FileCache implements CacheInterface{
28 28
 		
29
-		/**
30
-		 * Whether to enable compression of the cache data file.
31
-		 * @var boolean
32
-		 */
33
-		private $compressCacheData = true;
29
+        /**
30
+         * Whether to enable compression of the cache data file.
31
+         * @var boolean
32
+         */
33
+        private $compressCacheData = true;
34 34
 		
35
-		/**
36
-		 * The logger instance
37
-		 * @var Log
38
-		 */
39
-		private $logger;
35
+        /**
36
+         * The logger instance
37
+         * @var Log
38
+         */
39
+        private $logger;
40 40
 		
41 41
 		
42
-		public function __construct(Log $logger = null){
43
-			if(! $this->isSupported()){
44
-				show_error('The cache for file system is not available. Check the cache directory if is exists or is writable.');
45
-			}
46
-			/**
47
-	         * instance of the Log class
48
-	         */
49
-	        if(is_object($logger)){
50
-	          $this->logger = $logger;
51
-	        }
52
-	        else{
53
-	            $this->logger =& class_loader('Log', 'classes');
54
-	            $this->logger->setLogger('Library::FileCache');
55
-	        }
42
+        public function __construct(Log $logger = null){
43
+            if(! $this->isSupported()){
44
+                show_error('The cache for file system is not available. Check the cache directory if is exists or is writable.');
45
+            }
46
+            /**
47
+             * instance of the Log class
48
+             */
49
+            if(is_object($logger)){
50
+                $this->logger = $logger;
51
+            }
52
+            else{
53
+                $this->logger =& class_loader('Log', 'classes');
54
+                $this->logger->setLogger('Library::FileCache');
55
+            }
56 56
 			
57
-			//if Zlib extension is not loaded set compressCacheData to false
58
-			if(! extension_loaded('zlib')){
59
-				$this->logger->warning('The zlib extension is not loaded set cache compress data to FALSE');
60
-				$this->compressCacheData = false;
61
-			}
62
-		}
57
+            //if Zlib extension is not loaded set compressCacheData to false
58
+            if(! extension_loaded('zlib')){
59
+                $this->logger->warning('The zlib extension is not loaded set cache compress data to FALSE');
60
+                $this->compressCacheData = false;
61
+            }
62
+        }
63 63
 
64
-		/**
65
-		 * This is used to get the cache data using the key
66
-		 * @param  string $key the key to identify the cache data
67
-		 * @return mixed      the cache data if exists else return false
68
-		 */
69
-		public function get($key){
70
-			$this->logger->debug('Getting cache data for key ['. $key .']');
71
-			$filePath = $this->getFilePath($key);
72
-			if(! file_exists($filePath)){
73
-				$this->logger->info('No cache file found for the key ['. $key .'], return false');
74
-				return false;
75
-			}
76
-			$this->logger->info('The cache file [' .$filePath. '] for the key ['. $key .'] exists, check if the cache data is valid');
77
-			$handle = fopen($filePath,'r');
78
-			if(! is_resource($handle)){
79
-				$this->logger->error('Can not open the file cache [' .$filePath. '] for the key ['. $key .'], return false');
80
-				return false;
81
-			}
82
-			// Getting a shared lock 
83
-		    flock($handle, LOCK_SH);
84
-		    $data = file_get_contents($filePath);
85
-      		fclose($handle);
86
-      		$data = @unserialize($this->compressCacheData ? gzinflate($data) : $data);
87
-      		if (! $data) {
88
-      			$this->logger->error('Can not unserialize the cache data for the key ['. $key .'], return false');
89
-		         // If unserializing somehow didn't work out, we'll delete the file
90
-		         unlink($filePath);
91
-		         return false;
92
-	      	}
93
-	      	if (time() > $data['expire']) {
94
-	      		$this->logger->info('The cache data for the key ['. $key .'] already expired delete the cache file [' .$filePath. ']');
95
-		        // Unlinking when the file was expired
96
-		        unlink($filePath);
97
-		        return false;
98
-		     }
99
-		     else{
100
-		     	$this->logger->info('The cache not yet expire, now return the cache data for key ['. $key .'], the cache will expire at [' . date('Y-m-d H:i:s', $data['expire']) . ']');
101
-		     	return $data['data'];
102
-		     }
103
-		}
64
+        /**
65
+         * This is used to get the cache data using the key
66
+         * @param  string $key the key to identify the cache data
67
+         * @return mixed      the cache data if exists else return false
68
+         */
69
+        public function get($key){
70
+            $this->logger->debug('Getting cache data for key ['. $key .']');
71
+            $filePath = $this->getFilePath($key);
72
+            if(! file_exists($filePath)){
73
+                $this->logger->info('No cache file found for the key ['. $key .'], return false');
74
+                return false;
75
+            }
76
+            $this->logger->info('The cache file [' .$filePath. '] for the key ['. $key .'] exists, check if the cache data is valid');
77
+            $handle = fopen($filePath,'r');
78
+            if(! is_resource($handle)){
79
+                $this->logger->error('Can not open the file cache [' .$filePath. '] for the key ['. $key .'], return false');
80
+                return false;
81
+            }
82
+            // Getting a shared lock 
83
+            flock($handle, LOCK_SH);
84
+            $data = file_get_contents($filePath);
85
+                fclose($handle);
86
+                $data = @unserialize($this->compressCacheData ? gzinflate($data) : $data);
87
+                if (! $data) {
88
+                    $this->logger->error('Can not unserialize the cache data for the key ['. $key .'], return false');
89
+                    // If unserializing somehow didn't work out, we'll delete the file
90
+                    unlink($filePath);
91
+                    return false;
92
+                }
93
+                if (time() > $data['expire']) {
94
+                    $this->logger->info('The cache data for the key ['. $key .'] already expired delete the cache file [' .$filePath. ']');
95
+                // Unlinking when the file was expired
96
+                unlink($filePath);
97
+                return false;
98
+                }
99
+                else{
100
+                    $this->logger->info('The cache not yet expire, now return the cache data for key ['. $key .'], the cache will expire at [' . date('Y-m-d H:i:s', $data['expire']) . ']');
101
+                    return $data['data'];
102
+                }
103
+        }
104 104
 
105 105
 
106
-		/**
107
-		 * Save data to the cache
108
-		 * @param string  $key  the key to identify this cache data
109
-		 * @param mixed  $data the cache data
110
-		 * @param integer $ttl  the cache life time
111
-		 * @return boolean true if success otherwise will return false
112
-		 */
113
-		public function set($key, $data, $ttl = 0){
114
-			$expire = time() + $ttl;
115
-			$this->logger->debug('Setting cache data for key ['. $key .'], time to live [' .$ttl. '], expire at [' . date('Y-m-d H:i:s', $expire) . ']');
116
-			$filePath = $this->getFilePath($key);
117
-			$handle = fopen($filePath,'w');
118
-			if(! is_resource($handle)){
119
-				$this->logger->error('Can not open the file cache [' .$filePath. '] for the key ['. $key .'], return false');
120
-				return false;
121
-			}
122
-			flock($handle, LOCK_EX); // exclusive lock, will get released when the file is closed
123
-			//Serializing along with the TTL
124
-		    $cacheData = serialize(array(
125
-									'mtime' => time(),
126
-									'expire' => $expire,
127
-									'data' => $data,
128
-									'ttl' => $ttl
129
-									)
130
-								);		   
131
-		    $result = fwrite($handle, $this->compressCacheData ? gzdeflate($cacheData, 9) : $cacheData);
132
-		    if(! $result){
133
-		    	$this->logger->error('Can not write cache data into file [' .$filePath. '] for the key ['. $key .'], return false');
134
-		    	fclose($handle);
135
-		    	return false;
136
-		    }
137
-		    else{
138
-		    	$this->logger->info('Cache data saved into file [' .$filePath. '] for the key ['. $key .']');
139
-		    	fclose($handle);
140
-				chmod($filePath, 0640);
141
-				return true;
142
-		    }
143
-		}	
106
+        /**
107
+         * Save data to the cache
108
+         * @param string  $key  the key to identify this cache data
109
+         * @param mixed  $data the cache data
110
+         * @param integer $ttl  the cache life time
111
+         * @return boolean true if success otherwise will return false
112
+         */
113
+        public function set($key, $data, $ttl = 0){
114
+            $expire = time() + $ttl;
115
+            $this->logger->debug('Setting cache data for key ['. $key .'], time to live [' .$ttl. '], expire at [' . date('Y-m-d H:i:s', $expire) . ']');
116
+            $filePath = $this->getFilePath($key);
117
+            $handle = fopen($filePath,'w');
118
+            if(! is_resource($handle)){
119
+                $this->logger->error('Can not open the file cache [' .$filePath. '] for the key ['. $key .'], return false');
120
+                return false;
121
+            }
122
+            flock($handle, LOCK_EX); // exclusive lock, will get released when the file is closed
123
+            //Serializing along with the TTL
124
+            $cacheData = serialize(array(
125
+                                    'mtime' => time(),
126
+                                    'expire' => $expire,
127
+                                    'data' => $data,
128
+                                    'ttl' => $ttl
129
+                                    )
130
+                                );		   
131
+            $result = fwrite($handle, $this->compressCacheData ? gzdeflate($cacheData, 9) : $cacheData);
132
+            if(! $result){
133
+                $this->logger->error('Can not write cache data into file [' .$filePath. '] for the key ['. $key .'], return false');
134
+                fclose($handle);
135
+                return false;
136
+            }
137
+            else{
138
+                $this->logger->info('Cache data saved into file [' .$filePath. '] for the key ['. $key .']');
139
+                fclose($handle);
140
+                chmod($filePath, 0640);
141
+                return true;
142
+            }
143
+        }	
144 144
 
145 145
 
146
-		/**
147
-		 * Delete the cache data for given key
148
-		 * @param  string $key the key for cache to be deleted
149
-		 * @return boolean      true if the cache is delete, false if can't delete 
150
-		 * the cache or the cache with the given key not exist
151
-		 */
152
-		public function delete($key){
153
-			$this->logger->debug('Deleting of cache data for key [' .$key. ']');
154
-			$filePath = $this->getFilePath($key);
155
-			$this->logger->info('The file path for the key [' .$key. '] is [' .$filePath. ']');
156
-			if(! file_exists($filePath)){
157
-				$this->logger->info('This cache file does not exists skipping');
158
-				return false;
159
-			}
160
-			else{
161
-				$this->logger->info('Found cache file [' .$filePath. '] remove it');
162
-	      		unlink($filePath);
163
-				return true;
164
-			}
165
-		}
146
+        /**
147
+         * Delete the cache data for given key
148
+         * @param  string $key the key for cache to be deleted
149
+         * @return boolean      true if the cache is delete, false if can't delete 
150
+         * the cache or the cache with the given key not exist
151
+         */
152
+        public function delete($key){
153
+            $this->logger->debug('Deleting of cache data for key [' .$key. ']');
154
+            $filePath = $this->getFilePath($key);
155
+            $this->logger->info('The file path for the key [' .$key. '] is [' .$filePath. ']');
156
+            if(! file_exists($filePath)){
157
+                $this->logger->info('This cache file does not exists skipping');
158
+                return false;
159
+            }
160
+            else{
161
+                $this->logger->info('Found cache file [' .$filePath. '] remove it');
162
+                    unlink($filePath);
163
+                return true;
164
+            }
165
+        }
166 166
 		
167
-		/**
168
-		 * Get the cache information for given key
169
-		 * @param  string $key the key for cache to get the information for
170
-		 * @return boolean|array    the cache information. The associative array and must contains the following information:
171
-		 * 'mtime' => creation time of the cache (Unix timestamp),
172
-		 * 'expire' => expiration time of the cache (Unix timestamp),
173
-		 * 'ttl' => the time to live of the cache in second
174
-		 */
175
-		public function getInfo($key){
176
-			$this->logger->debug('Getting of cache info for key [' .$key. ']');
177
-			$filePath = $this->getFilePath($key);
178
-			$this->logger->info('The file path for the key [' .$key. '] is [' .$filePath. ']');
179
-			if(! file_exists($filePath)){
180
-				$this->logger->info('This cache file does not exists skipping');
181
-				return false;
182
-			}
183
-			$this->logger->info('Found cache file [' .$filePath. '] check the validity');
184
-      		$data = file_get_contents($filePath);
185
-			$data = @unserialize($this->compressCacheData ? gzinflate($data) : $data);
186
-			if(! $data){
187
-				$this->logger->warning('Can not unserialize the cache data for file [' . $filePath . ']');
188
-				return false;
189
-			}
190
-			$this->logger->info('This cache data is OK check for expire');
191
-			if(isset($data['expire']) && $data['expire'] > time()){
192
-				$this->logger->info('This cache not yet expired return cache informations');
193
-				$info = array(
194
-					'mtime' => $data['mtime'],
195
-					'expire' => $data['expire'],
196
-					'ttl' => $data['ttl']
197
-					);
198
-				return $info;
199
-			}
200
-			$this->logger->info('This cache already expired return false');
201
-			return false;
202
-		}
167
+        /**
168
+         * Get the cache information for given key
169
+         * @param  string $key the key for cache to get the information for
170
+         * @return boolean|array    the cache information. The associative array and must contains the following information:
171
+         * 'mtime' => creation time of the cache (Unix timestamp),
172
+         * 'expire' => expiration time of the cache (Unix timestamp),
173
+         * 'ttl' => the time to live of the cache in second
174
+         */
175
+        public function getInfo($key){
176
+            $this->logger->debug('Getting of cache info for key [' .$key. ']');
177
+            $filePath = $this->getFilePath($key);
178
+            $this->logger->info('The file path for the key [' .$key. '] is [' .$filePath. ']');
179
+            if(! file_exists($filePath)){
180
+                $this->logger->info('This cache file does not exists skipping');
181
+                return false;
182
+            }
183
+            $this->logger->info('Found cache file [' .$filePath. '] check the validity');
184
+                $data = file_get_contents($filePath);
185
+            $data = @unserialize($this->compressCacheData ? gzinflate($data) : $data);
186
+            if(! $data){
187
+                $this->logger->warning('Can not unserialize the cache data for file [' . $filePath . ']');
188
+                return false;
189
+            }
190
+            $this->logger->info('This cache data is OK check for expire');
191
+            if(isset($data['expire']) && $data['expire'] > time()){
192
+                $this->logger->info('This cache not yet expired return cache informations');
193
+                $info = array(
194
+                    'mtime' => $data['mtime'],
195
+                    'expire' => $data['expire'],
196
+                    'ttl' => $data['ttl']
197
+                    );
198
+                return $info;
199
+            }
200
+            $this->logger->info('This cache already expired return false');
201
+            return false;
202
+        }
203 203
 
204 204
 
205
-		/**
206
-		 * Used to delete expired cache data
207
-		 */
208
-		public function deleteExpiredCache(){
209
-			$this->logger->debug('Deleting of expired cache files');
210
-			$list = glob(CACHE_PATH . '*.cache');
211
-			if(! $list){
212
-				$this->logger->info('No cache files were found skipping');
213
-			}
214
-			else{
215
-				$this->logger->info('Found [' . count($list) . '] cache files to remove if expired');
216
-				foreach ($list as $file) {
217
-					$this->logger->debug('Processing the cache file [' . $file . ']');
218
-					$data = file_get_contents($file);
219
-		      		$data = @unserialize($this->compressCacheData ? gzinflate($data) : $data);
220
-		      		if(! $data){
221
-		      			$this->logger->warning('Can not unserialize the cache data for file [' . $file . ']');
222
-		      		}
223
-		      		else if(time() > $data['expire']){
224
-		      			$this->logger->info('The cache data for file [' . $file . '] already expired remove it');
225
-		      			unlink($file);
226
-		      		}
227
-		      		else{
228
-		      			$this->logger->info('The cache data for file [' . $file . '] not yet expired skip it');
229
-		      		}
230
-				}
231
-			}
232
-		}	
205
+        /**
206
+         * Used to delete expired cache data
207
+         */
208
+        public function deleteExpiredCache(){
209
+            $this->logger->debug('Deleting of expired cache files');
210
+            $list = glob(CACHE_PATH . '*.cache');
211
+            if(! $list){
212
+                $this->logger->info('No cache files were found skipping');
213
+            }
214
+            else{
215
+                $this->logger->info('Found [' . count($list) . '] cache files to remove if expired');
216
+                foreach ($list as $file) {
217
+                    $this->logger->debug('Processing the cache file [' . $file . ']');
218
+                    $data = file_get_contents($file);
219
+                        $data = @unserialize($this->compressCacheData ? gzinflate($data) : $data);
220
+                        if(! $data){
221
+                            $this->logger->warning('Can not unserialize the cache data for file [' . $file . ']');
222
+                        }
223
+                        else if(time() > $data['expire']){
224
+                            $this->logger->info('The cache data for file [' . $file . '] already expired remove it');
225
+                            unlink($file);
226
+                        }
227
+                        else{
228
+                            $this->logger->info('The cache data for file [' . $file . '] not yet expired skip it');
229
+                        }
230
+                }
231
+            }
232
+        }	
233 233
 
234
-		/**
235
-		 * Remove all file from cache folder
236
-		 */
237
-		public function clean(){
238
-			$this->logger->debug('Deleting of all cache files');
239
-			$list = glob(CACHE_PATH . '*.cache');
240
-			if(! $list){
241
-				$this->logger->info('No cache files were found skipping');
242
-			}
243
-			else{
244
-				$this->logger->info('Found [' . count($list) . '] cache files to remove');
245
-				foreach ($list as $file) {
246
-					$this->logger->debug('Processing the cache file [' . $file . ']');
247
-					unlink($file);
248
-				}
249
-			}
250
-		}
234
+        /**
235
+         * Remove all file from cache folder
236
+         */
237
+        public function clean(){
238
+            $this->logger->debug('Deleting of all cache files');
239
+            $list = glob(CACHE_PATH . '*.cache');
240
+            if(! $list){
241
+                $this->logger->info('No cache files were found skipping');
242
+            }
243
+            else{
244
+                $this->logger->info('Found [' . count($list) . '] cache files to remove');
245
+                foreach ($list as $file) {
246
+                    $this->logger->debug('Processing the cache file [' . $file . ']');
247
+                    unlink($file);
248
+                }
249
+            }
250
+        }
251 251
 	
252
-	    /**
253
-	     * @return boolean
254
-	     */
255
-	    public function isCompressCacheData(){
256
-	        return $this->compressCacheData;
257
-	    }
252
+        /**
253
+         * @return boolean
254
+         */
255
+        public function isCompressCacheData(){
256
+            return $this->compressCacheData;
257
+        }
258 258
 
259
-	    /**
260
-	     * @param boolean $compressCacheData
261
-	     *
262
-	     * @return object
263
-	     */
264
-	    public function setCompressCacheData($status = true){
265
-			//if Zlib extension is not loaded set compressCacheData to false
266
-			if($status === true && ! extension_loaded('zlib')){
259
+        /**
260
+         * @param boolean $compressCacheData
261
+         *
262
+         * @return object
263
+         */
264
+        public function setCompressCacheData($status = true){
265
+            //if Zlib extension is not loaded set compressCacheData to false
266
+            if($status === true && ! extension_loaded('zlib')){
267 267
 				
268
-				$this->logger->warning('The zlib extension is not loaded set cache compress data to FALSE');
269
-				$this->compressCacheData = false;
270
-			}
271
-			else{
272
-				$this->compressCacheData = $status;
273
-			}
274
-			return $this;
275
-	    }
268
+                $this->logger->warning('The zlib extension is not loaded set cache compress data to FALSE');
269
+                $this->compressCacheData = false;
270
+            }
271
+            else{
272
+                $this->compressCacheData = $status;
273
+            }
274
+            return $this;
275
+        }
276 276
 		
277
-		/**
278
-		 * Check whether the cache feature for the handle is supported
279
-		 *
280
-		 * @return bool
281
-		 */
282
-		public function isSupported(){
283
-			return CACHE_PATH && is_dir(CACHE_PATH) && is_writable(CACHE_PATH);
284
-		}
277
+        /**
278
+         * Check whether the cache feature for the handle is supported
279
+         *
280
+         * @return bool
281
+         */
282
+        public function isSupported(){
283
+            return CACHE_PATH && is_dir(CACHE_PATH) && is_writable(CACHE_PATH);
284
+        }
285 285
 
286
-		/**
287
-	     * Return the Log instance
288
-	     * @return object
289
-	     */
290
-	    public function getLogger(){
291
-	      return $this->logger;
292
-	    }
286
+        /**
287
+         * Return the Log instance
288
+         * @return object
289
+         */
290
+        public function getLogger(){
291
+            return $this->logger;
292
+        }
293 293
 
294
-	    /**
295
-	     * Set the log instance
296
-	     * @param Log $logger the log object
297
-	     */
298
-	    public function setLogger(Log $logger){
299
-	      $this->logger = $logger;
300
-	      return $this;
301
-	    }
294
+        /**
295
+         * Set the log instance
296
+         * @param Log $logger the log object
297
+         */
298
+        public function setLogger(Log $logger){
299
+            $this->logger = $logger;
300
+            return $this;
301
+        }
302 302
 		
303
-		/**
304
-		* Get the cache file full path for the given key
305
-		*
306
-		* @param string $key the cache item key
307
-		* @return string the full cache file path for this key
308
-		*/
309
-		private function getFilePath($key){
310
-			return CACHE_PATH . md5($key) . '.cache';
311
-		}
312
-	}
303
+        /**
304
+         * Get the cache file full path for the given key
305
+         *
306
+         * @param string $key the cache item key
307
+         * @return string the full cache file path for this key
308
+         */
309
+        private function getFilePath($key){
310
+            return CACHE_PATH . md5($key) . '.cache';
311
+        }
312
+    }
Please login to merge, or discard this patch.
Spacing   +59 added lines, -59 removed lines patch added patch discarded remove patch
@@ -24,7 +24,7 @@  discard block
 block discarded – undo
24 24
 	 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
25 25
 	*/
26 26
 
27
-	class FileCache implements CacheInterface{
27
+	class FileCache implements CacheInterface {
28 28
 		
29 29
 		/**
30 30
 		 * Whether to enable compression of the cache data file.
@@ -39,23 +39,23 @@  discard block
 block discarded – undo
39 39
 		private $logger;
40 40
 		
41 41
 		
42
-		public function __construct(Log $logger = null){
43
-			if(! $this->isSupported()){
42
+		public function __construct(Log $logger = null) {
43
+			if (!$this->isSupported()) {
44 44
 				show_error('The cache for file system is not available. Check the cache directory if is exists or is writable.');
45 45
 			}
46 46
 			/**
47 47
 	         * instance of the Log class
48 48
 	         */
49
-	        if(is_object($logger)){
49
+	        if (is_object($logger)) {
50 50
 	          $this->logger = $logger;
51 51
 	        }
52
-	        else{
53
-	            $this->logger =& class_loader('Log', 'classes');
52
+	        else {
53
+	            $this->logger = & class_loader('Log', 'classes');
54 54
 	            $this->logger->setLogger('Library::FileCache');
55 55
 	        }
56 56
 			
57 57
 			//if Zlib extension is not loaded set compressCacheData to false
58
-			if(! extension_loaded('zlib')){
58
+			if (!extension_loaded('zlib')) {
59 59
 				$this->logger->warning('The zlib extension is not loaded set cache compress data to FALSE');
60 60
 				$this->compressCacheData = false;
61 61
 			}
@@ -66,17 +66,17 @@  discard block
 block discarded – undo
66 66
 		 * @param  string $key the key to identify the cache data
67 67
 		 * @return mixed      the cache data if exists else return false
68 68
 		 */
69
-		public function get($key){
70
-			$this->logger->debug('Getting cache data for key ['. $key .']');
69
+		public function get($key) {
70
+			$this->logger->debug('Getting cache data for key [' . $key . ']');
71 71
 			$filePath = $this->getFilePath($key);
72
-			if(! file_exists($filePath)){
73
-				$this->logger->info('No cache file found for the key ['. $key .'], return false');
72
+			if (!file_exists($filePath)) {
73
+				$this->logger->info('No cache file found for the key [' . $key . '], return false');
74 74
 				return false;
75 75
 			}
76
-			$this->logger->info('The cache file [' .$filePath. '] for the key ['. $key .'] exists, check if the cache data is valid');
77
-			$handle = fopen($filePath,'r');
78
-			if(! is_resource($handle)){
79
-				$this->logger->error('Can not open the file cache [' .$filePath. '] for the key ['. $key .'], return false');
76
+			$this->logger->info('The cache file [' . $filePath . '] for the key [' . $key . '] exists, check if the cache data is valid');
77
+			$handle = fopen($filePath, 'r');
78
+			if (!is_resource($handle)) {
79
+				$this->logger->error('Can not open the file cache [' . $filePath . '] for the key [' . $key . '], return false');
80 80
 				return false;
81 81
 			}
82 82
 			// Getting a shared lock 
@@ -84,20 +84,20 @@  discard block
 block discarded – undo
84 84
 		    $data = file_get_contents($filePath);
85 85
       		fclose($handle);
86 86
       		$data = @unserialize($this->compressCacheData ? gzinflate($data) : $data);
87
-      		if (! $data) {
88
-      			$this->logger->error('Can not unserialize the cache data for the key ['. $key .'], return false');
87
+      		if (!$data) {
88
+      			$this->logger->error('Can not unserialize the cache data for the key [' . $key . '], return false');
89 89
 		         // If unserializing somehow didn't work out, we'll delete the file
90 90
 		         unlink($filePath);
91 91
 		         return false;
92 92
 	      	}
93 93
 	      	if (time() > $data['expire']) {
94
-	      		$this->logger->info('The cache data for the key ['. $key .'] already expired delete the cache file [' .$filePath. ']');
94
+	      		$this->logger->info('The cache data for the key [' . $key . '] already expired delete the cache file [' . $filePath . ']');
95 95
 		        // Unlinking when the file was expired
96 96
 		        unlink($filePath);
97 97
 		        return false;
98 98
 		     }
99
-		     else{
100
-		     	$this->logger->info('The cache not yet expire, now return the cache data for key ['. $key .'], the cache will expire at [' . date('Y-m-d H:i:s', $data['expire']) . ']');
99
+		     else {
100
+		     	$this->logger->info('The cache not yet expire, now return the cache data for key [' . $key . '], the cache will expire at [' . date('Y-m-d H:i:s', $data['expire']) . ']');
101 101
 		     	return $data['data'];
102 102
 		     }
103 103
 		}
@@ -110,13 +110,13 @@  discard block
 block discarded – undo
110 110
 		 * @param integer $ttl  the cache life time
111 111
 		 * @return boolean true if success otherwise will return false
112 112
 		 */
113
-		public function set($key, $data, $ttl = 0){
113
+		public function set($key, $data, $ttl = 0) {
114 114
 			$expire = time() + $ttl;
115
-			$this->logger->debug('Setting cache data for key ['. $key .'], time to live [' .$ttl. '], expire at [' . date('Y-m-d H:i:s', $expire) . ']');
115
+			$this->logger->debug('Setting cache data for key [' . $key . '], time to live [' . $ttl . '], expire at [' . date('Y-m-d H:i:s', $expire) . ']');
116 116
 			$filePath = $this->getFilePath($key);
117
-			$handle = fopen($filePath,'w');
118
-			if(! is_resource($handle)){
119
-				$this->logger->error('Can not open the file cache [' .$filePath. '] for the key ['. $key .'], return false');
117
+			$handle = fopen($filePath, 'w');
118
+			if (!is_resource($handle)) {
119
+				$this->logger->error('Can not open the file cache [' . $filePath . '] for the key [' . $key . '], return false');
120 120
 				return false;
121 121
 			}
122 122
 			flock($handle, LOCK_EX); // exclusive lock, will get released when the file is closed
@@ -129,13 +129,13 @@  discard block
 block discarded – undo
129 129
 									)
130 130
 								);		   
131 131
 		    $result = fwrite($handle, $this->compressCacheData ? gzdeflate($cacheData, 9) : $cacheData);
132
-		    if(! $result){
133
-		    	$this->logger->error('Can not write cache data into file [' .$filePath. '] for the key ['. $key .'], return false');
132
+		    if (!$result) {
133
+		    	$this->logger->error('Can not write cache data into file [' . $filePath . '] for the key [' . $key . '], return false');
134 134
 		    	fclose($handle);
135 135
 		    	return false;
136 136
 		    }
137
-		    else{
138
-		    	$this->logger->info('Cache data saved into file [' .$filePath. '] for the key ['. $key .']');
137
+		    else {
138
+		    	$this->logger->info('Cache data saved into file [' . $filePath . '] for the key [' . $key . ']');
139 139
 		    	fclose($handle);
140 140
 				chmod($filePath, 0640);
141 141
 				return true;
@@ -149,16 +149,16 @@  discard block
 block discarded – undo
149 149
 		 * @return boolean      true if the cache is delete, false if can't delete 
150 150
 		 * the cache or the cache with the given key not exist
151 151
 		 */
152
-		public function delete($key){
153
-			$this->logger->debug('Deleting of cache data for key [' .$key. ']');
152
+		public function delete($key) {
153
+			$this->logger->debug('Deleting of cache data for key [' . $key . ']');
154 154
 			$filePath = $this->getFilePath($key);
155
-			$this->logger->info('The file path for the key [' .$key. '] is [' .$filePath. ']');
156
-			if(! file_exists($filePath)){
155
+			$this->logger->info('The file path for the key [' . $key . '] is [' . $filePath . ']');
156
+			if (!file_exists($filePath)) {
157 157
 				$this->logger->info('This cache file does not exists skipping');
158 158
 				return false;
159 159
 			}
160
-			else{
161
-				$this->logger->info('Found cache file [' .$filePath. '] remove it');
160
+			else {
161
+				$this->logger->info('Found cache file [' . $filePath . '] remove it');
162 162
 	      		unlink($filePath);
163 163
 				return true;
164 164
 			}
@@ -172,23 +172,23 @@  discard block
 block discarded – undo
172 172
 		 * 'expire' => expiration time of the cache (Unix timestamp),
173 173
 		 * 'ttl' => the time to live of the cache in second
174 174
 		 */
175
-		public function getInfo($key){
176
-			$this->logger->debug('Getting of cache info for key [' .$key. ']');
175
+		public function getInfo($key) {
176
+			$this->logger->debug('Getting of cache info for key [' . $key . ']');
177 177
 			$filePath = $this->getFilePath($key);
178
-			$this->logger->info('The file path for the key [' .$key. '] is [' .$filePath. ']');
179
-			if(! file_exists($filePath)){
178
+			$this->logger->info('The file path for the key [' . $key . '] is [' . $filePath . ']');
179
+			if (!file_exists($filePath)) {
180 180
 				$this->logger->info('This cache file does not exists skipping');
181 181
 				return false;
182 182
 			}
183
-			$this->logger->info('Found cache file [' .$filePath. '] check the validity');
183
+			$this->logger->info('Found cache file [' . $filePath . '] check the validity');
184 184
       		$data = file_get_contents($filePath);
185 185
 			$data = @unserialize($this->compressCacheData ? gzinflate($data) : $data);
186
-			if(! $data){
186
+			if (!$data) {
187 187
 				$this->logger->warning('Can not unserialize the cache data for file [' . $filePath . ']');
188 188
 				return false;
189 189
 			}
190 190
 			$this->logger->info('This cache data is OK check for expire');
191
-			if(isset($data['expire']) && $data['expire'] > time()){
191
+			if (isset($data['expire']) && $data['expire'] > time()) {
192 192
 				$this->logger->info('This cache not yet expired return cache informations');
193 193
 				$info = array(
194 194
 					'mtime' => $data['mtime'],
@@ -205,26 +205,26 @@  discard block
 block discarded – undo
205 205
 		/**
206 206
 		 * Used to delete expired cache data
207 207
 		 */
208
-		public function deleteExpiredCache(){
208
+		public function deleteExpiredCache() {
209 209
 			$this->logger->debug('Deleting of expired cache files');
210 210
 			$list = glob(CACHE_PATH . '*.cache');
211
-			if(! $list){
211
+			if (!$list) {
212 212
 				$this->logger->info('No cache files were found skipping');
213 213
 			}
214
-			else{
214
+			else {
215 215
 				$this->logger->info('Found [' . count($list) . '] cache files to remove if expired');
216 216
 				foreach ($list as $file) {
217 217
 					$this->logger->debug('Processing the cache file [' . $file . ']');
218 218
 					$data = file_get_contents($file);
219 219
 		      		$data = @unserialize($this->compressCacheData ? gzinflate($data) : $data);
220
-		      		if(! $data){
220
+		      		if (!$data) {
221 221
 		      			$this->logger->warning('Can not unserialize the cache data for file [' . $file . ']');
222 222
 		      		}
223
-		      		else if(time() > $data['expire']){
223
+		      		else if (time() > $data['expire']) {
224 224
 		      			$this->logger->info('The cache data for file [' . $file . '] already expired remove it');
225 225
 		      			unlink($file);
226 226
 		      		}
227
-		      		else{
227
+		      		else {
228 228
 		      			$this->logger->info('The cache data for file [' . $file . '] not yet expired skip it');
229 229
 		      		}
230 230
 				}
@@ -234,13 +234,13 @@  discard block
 block discarded – undo
234 234
 		/**
235 235
 		 * Remove all file from cache folder
236 236
 		 */
237
-		public function clean(){
237
+		public function clean() {
238 238
 			$this->logger->debug('Deleting of all cache files');
239 239
 			$list = glob(CACHE_PATH . '*.cache');
240
-			if(! $list){
240
+			if (!$list) {
241 241
 				$this->logger->info('No cache files were found skipping');
242 242
 			}
243
-			else{
243
+			else {
244 244
 				$this->logger->info('Found [' . count($list) . '] cache files to remove');
245 245
 				foreach ($list as $file) {
246 246
 					$this->logger->debug('Processing the cache file [' . $file . ']');
@@ -252,7 +252,7 @@  discard block
 block discarded – undo
252 252
 	    /**
253 253
 	     * @return boolean
254 254
 	     */
255
-	    public function isCompressCacheData(){
255
+	    public function isCompressCacheData() {
256 256
 	        return $this->compressCacheData;
257 257
 	    }
258 258
 
@@ -261,14 +261,14 @@  discard block
 block discarded – undo
261 261
 	     *
262 262
 	     * @return object
263 263
 	     */
264
-	    public function setCompressCacheData($status = true){
264
+	    public function setCompressCacheData($status = true) {
265 265
 			//if Zlib extension is not loaded set compressCacheData to false
266
-			if($status === true && ! extension_loaded('zlib')){
266
+			if ($status === true && !extension_loaded('zlib')) {
267 267
 				
268 268
 				$this->logger->warning('The zlib extension is not loaded set cache compress data to FALSE');
269 269
 				$this->compressCacheData = false;
270 270
 			}
271
-			else{
271
+			else {
272 272
 				$this->compressCacheData = $status;
273 273
 			}
274 274
 			return $this;
@@ -279,7 +279,7 @@  discard block
 block discarded – undo
279 279
 		 *
280 280
 		 * @return bool
281 281
 		 */
282
-		public function isSupported(){
282
+		public function isSupported() {
283 283
 			return CACHE_PATH && is_dir(CACHE_PATH) && is_writable(CACHE_PATH);
284 284
 		}
285 285
 
@@ -287,7 +287,7 @@  discard block
 block discarded – undo
287 287
 	     * Return the Log instance
288 288
 	     * @return object
289 289
 	     */
290
-	    public function getLogger(){
290
+	    public function getLogger() {
291 291
 	      return $this->logger;
292 292
 	    }
293 293
 
@@ -295,7 +295,7 @@  discard block
 block discarded – undo
295 295
 	     * Set the log instance
296 296
 	     * @param Log $logger the log object
297 297
 	     */
298
-	    public function setLogger(Log $logger){
298
+	    public function setLogger(Log $logger) {
299 299
 	      $this->logger = $logger;
300 300
 	      return $this;
301 301
 	    }
@@ -306,7 +306,7 @@  discard block
 block discarded – undo
306 306
 		* @param string $key the cache item key
307 307
 		* @return string the full cache file path for this key
308 308
 		*/
309
-		private function getFilePath($key){
309
+		private function getFilePath($key) {
310 310
 			return CACHE_PATH . md5($key) . '.cache';
311 311
 		}
312 312
 	}
Please login to merge, or discard this patch.
Braces   +9 added lines, -18 removed lines patch added patch discarded remove patch
@@ -48,8 +48,7 @@  discard block
 block discarded – undo
48 48
 	         */
49 49
 	        if(is_object($logger)){
50 50
 	          $this->logger = $logger;
51
-	        }
52
-	        else{
51
+	        } else{
53 52
 	            $this->logger =& class_loader('Log', 'classes');
54 53
 	            $this->logger->setLogger('Library::FileCache');
55 54
 	        }
@@ -95,8 +94,7 @@  discard block
 block discarded – undo
95 94
 		        // Unlinking when the file was expired
96 95
 		        unlink($filePath);
97 96
 		        return false;
98
-		     }
99
-		     else{
97
+		     } else{
100 98
 		     	$this->logger->info('The cache not yet expire, now return the cache data for key ['. $key .'], the cache will expire at [' . date('Y-m-d H:i:s', $data['expire']) . ']');
101 99
 		     	return $data['data'];
102 100
 		     }
@@ -133,8 +131,7 @@  discard block
 block discarded – undo
133 131
 		    	$this->logger->error('Can not write cache data into file [' .$filePath. '] for the key ['. $key .'], return false');
134 132
 		    	fclose($handle);
135 133
 		    	return false;
136
-		    }
137
-		    else{
134
+		    } else{
138 135
 		    	$this->logger->info('Cache data saved into file [' .$filePath. '] for the key ['. $key .']');
139 136
 		    	fclose($handle);
140 137
 				chmod($filePath, 0640);
@@ -156,8 +153,7 @@  discard block
 block discarded – undo
156 153
 			if(! file_exists($filePath)){
157 154
 				$this->logger->info('This cache file does not exists skipping');
158 155
 				return false;
159
-			}
160
-			else{
156
+			} else{
161 157
 				$this->logger->info('Found cache file [' .$filePath. '] remove it');
162 158
 	      		unlink($filePath);
163 159
 				return true;
@@ -210,8 +206,7 @@  discard block
 block discarded – undo
210 206
 			$list = glob(CACHE_PATH . '*.cache');
211 207
 			if(! $list){
212 208
 				$this->logger->info('No cache files were found skipping');
213
-			}
214
-			else{
209
+			} else{
215 210
 				$this->logger->info('Found [' . count($list) . '] cache files to remove if expired');
216 211
 				foreach ($list as $file) {
217 212
 					$this->logger->debug('Processing the cache file [' . $file . ']');
@@ -219,12 +214,10 @@  discard block
 block discarded – undo
219 214
 		      		$data = @unserialize($this->compressCacheData ? gzinflate($data) : $data);
220 215
 		      		if(! $data){
221 216
 		      			$this->logger->warning('Can not unserialize the cache data for file [' . $file . ']');
222
-		      		}
223
-		      		else if(time() > $data['expire']){
217
+		      		} else if(time() > $data['expire']){
224 218
 		      			$this->logger->info('The cache data for file [' . $file . '] already expired remove it');
225 219
 		      			unlink($file);
226
-		      		}
227
-		      		else{
220
+		      		} else{
228 221
 		      			$this->logger->info('The cache data for file [' . $file . '] not yet expired skip it');
229 222
 		      		}
230 223
 				}
@@ -239,8 +232,7 @@  discard block
 block discarded – undo
239 232
 			$list = glob(CACHE_PATH . '*.cache');
240 233
 			if(! $list){
241 234
 				$this->logger->info('No cache files were found skipping');
242
-			}
243
-			else{
235
+			} else{
244 236
 				$this->logger->info('Found [' . count($list) . '] cache files to remove');
245 237
 				foreach ($list as $file) {
246 238
 					$this->logger->debug('Processing the cache file [' . $file . ']');
@@ -267,8 +259,7 @@  discard block
 block discarded – undo
267 259
 				
268 260
 				$this->logger->warning('The zlib extension is not loaded set cache compress data to FALSE');
269 261
 				$this->compressCacheData = false;
270
-			}
271
-			else{
262
+			} else{
272 263
 				$this->compressCacheData = $status;
273 264
 			}
274 265
 			return $this;
Please login to merge, or discard this patch.
core/classes/Router.php 3 patches
Indentation   +610 added lines, -610 removed lines patch added patch discarded remove patch
@@ -1,624 +1,624 @@
 block discarded – undo
1 1
 <?php
2
-	defined('ROOT_PATH') or exit('Access denied');
3
-	/**
4
-	 * TNH Framework
5
-	 *
6
-	 * A simple PHP framework using HMVC architecture
7
-	 *
8
-	 * This content is released under the GNU GPL License (GPL)
9
-	 *
10
-	 * Copyright (C) 2017 Tony NGUEREZA
11
-	 *
12
-	 * This program is free software; you can redistribute it and/or
13
-	 * modify it under the terms of the GNU General Public License
14
-	 * as published by the Free Software Foundation; either version 3
15
-	 * of the License, or (at your option) any later version.
16
-	 *
17
-	 * This program is distributed in the hope that it will be useful,
18
-	 * but WITHOUT ANY WARRANTY; without even the implied warranty of
19
-	 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
20
-	 * GNU General Public License for more details.
21
-	 *
22
-	 * You should have received a copy of the GNU General Public License
23
-	 * along with this program; if not, write to the Free Software
24
-	 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
25
-	*/
26
-
27
-	class Router {
28
-		/**
29
-		* @var array $pattern: The list of URIs to validate against
30
-		*/
31
-		private $pattern = array();
32
-
33
-		/**
34
-		* @var array $callback: The list of callback to call
35
-		*/
36
-		private $callback = array();
37
-
38
-		/**
39
-		* @var string $uriTrim: The char to remove from the URIs
40
-		*/
41
-		protected $uriTrim = '/\^$';
42
-
43
-		/**
44
-		* @var string $uri: The route URI to use
45
-		*/
46
-		protected $uri = '';
47
-
48
-		/**
49
-		 * The module name of the current request
50
-		 * @var string
51
-		 */
52
-		protected $module = null;
2
+    defined('ROOT_PATH') or exit('Access denied');
3
+    /**
4
+     * TNH Framework
5
+     *
6
+     * A simple PHP framework using HMVC architecture
7
+     *
8
+     * This content is released under the GNU GPL License (GPL)
9
+     *
10
+     * Copyright (C) 2017 Tony NGUEREZA
11
+     *
12
+     * This program is free software; you can redistribute it and/or
13
+     * modify it under the terms of the GNU General Public License
14
+     * as published by the Free Software Foundation; either version 3
15
+     * of the License, or (at your option) any later version.
16
+     *
17
+     * This program is distributed in the hope that it will be useful,
18
+     * but WITHOUT ANY WARRANTY; without even the implied warranty of
19
+     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
20
+     * GNU General Public License for more details.
21
+     *
22
+     * You should have received a copy of the GNU General Public License
23
+     * along with this program; if not, write to the Free Software
24
+     * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
25
+     */
26
+
27
+    class Router {
28
+        /**
29
+         * @var array $pattern: The list of URIs to validate against
30
+         */
31
+        private $pattern = array();
32
+
33
+        /**
34
+         * @var array $callback: The list of callback to call
35
+         */
36
+        private $callback = array();
37
+
38
+        /**
39
+         * @var string $uriTrim: The char to remove from the URIs
40
+         */
41
+        protected $uriTrim = '/\^$';
42
+
43
+        /**
44
+         * @var string $uri: The route URI to use
45
+         */
46
+        protected $uri = '';
47
+
48
+        /**
49
+         * The module name of the current request
50
+         * @var string
51
+         */
52
+        protected $module = null;
53 53
 		
54
-		/**
55
-		 * The controller name of the current request
56
-		 * @var string
57
-		 */
58
-		protected $controller = null;
59
-
60
-		/**
61
-		 * The controller path
62
-		 * @var string
63
-		 */
64
-		protected $controllerPath = null;
65
-
66
-		/**
67
-		 * The method name. The default value is "index"
68
-		 * @var string
69
-		 */
70
-		protected $method = 'index';
71
-
72
-		/**
73
-		 * List of argument to pass to the method
74
-		 * @var array
75
-		 */
76
-		protected $args = array();
77
-
78
-		/**
79
-		 * List of routes configurations
80
-		 * @var array
81
-		 */
82
-		protected $routes = array();
83
-
84
-		/**
85
-		 * The segments array for the current request
86
-		 * @var array
87
-		 */
88
-		protected $segments = array();
89
-
90
-		/**
91
-		 * The logger instance
92
-		 * @var Log
93
-		 */
94
-		private $logger;
95
-
96
-		/**
97
-		 * Construct the new Router instance
98
-		 */
99
-		public function __construct(){
100
-			$this->setLoggerFromParamOrCreateNewInstance(null);
54
+        /**
55
+         * The controller name of the current request
56
+         * @var string
57
+         */
58
+        protected $controller = null;
59
+
60
+        /**
61
+         * The controller path
62
+         * @var string
63
+         */
64
+        protected $controllerPath = null;
65
+
66
+        /**
67
+         * The method name. The default value is "index"
68
+         * @var string
69
+         */
70
+        protected $method = 'index';
71
+
72
+        /**
73
+         * List of argument to pass to the method
74
+         * @var array
75
+         */
76
+        protected $args = array();
77
+
78
+        /**
79
+         * List of routes configurations
80
+         * @var array
81
+         */
82
+        protected $routes = array();
83
+
84
+        /**
85
+         * The segments array for the current request
86
+         * @var array
87
+         */
88
+        protected $segments = array();
89
+
90
+        /**
91
+         * The logger instance
92
+         * @var Log
93
+         */
94
+        private $logger;
95
+
96
+        /**
97
+         * Construct the new Router instance
98
+         */
99
+        public function __construct(){
100
+            $this->setLoggerFromParamOrCreateNewInstance(null);
101 101
 			
102
-			//loading routes for module
103
-			$moduleRouteList = array();
104
-			$modulesRoutes = Module::getModulesRoutes();
105
-			if($modulesRoutes && is_array($modulesRoutes)){
106
-				$moduleRouteList = $modulesRoutes;
107
-				unset($modulesRoutes);
108
-			}
109
-			$this->setRouteConfiguration($moduleRouteList);
110
-			$this->logger->info('The routes configuration are listed below: ' . stringfy_vars($this->routes));
111
-
112
-			//Set route informations
113
-			$this->setRouteConfigurationInfos();
114
-		}
115
-
116
-		/**
117
-		 * Get the route patterns
118
-		 * @return array
119
-		 */
120
-		public function getPattern(){
121
-			return $this->pattern;
122
-		}
123
-
124
-		/**
125
-		 * Get the route callbacks
126
-		 * @return array
127
-		 */
128
-		public function getCallback(){
129
-			return $this->callback;
130
-		}
131
-
132
-	    /**
133
-		 * Get the module name
134
-		 * @return string
135
-		 */
136
-		public function getModule(){
137
-			return $this->module;
138
-		}
102
+            //loading routes for module
103
+            $moduleRouteList = array();
104
+            $modulesRoutes = Module::getModulesRoutes();
105
+            if($modulesRoutes && is_array($modulesRoutes)){
106
+                $moduleRouteList = $modulesRoutes;
107
+                unset($modulesRoutes);
108
+            }
109
+            $this->setRouteConfiguration($moduleRouteList);
110
+            $this->logger->info('The routes configuration are listed below: ' . stringfy_vars($this->routes));
111
+
112
+            //Set route informations
113
+            $this->setRouteConfigurationInfos();
114
+        }
115
+
116
+        /**
117
+         * Get the route patterns
118
+         * @return array
119
+         */
120
+        public function getPattern(){
121
+            return $this->pattern;
122
+        }
123
+
124
+        /**
125
+         * Get the route callbacks
126
+         * @return array
127
+         */
128
+        public function getCallback(){
129
+            return $this->callback;
130
+        }
131
+
132
+        /**
133
+         * Get the module name
134
+         * @return string
135
+         */
136
+        public function getModule(){
137
+            return $this->module;
138
+        }
139 139
 		
140
-		/**
141
-		 * Get the controller name
142
-		 * @return string
143
-		 */
144
-		public function getController(){
145
-			return $this->controller;
146
-		}
147
-
148
-		/**
149
-		 * Get the controller file path
150
-		 * @return string
151
-		 */
152
-		public function getControllerPath(){
153
-			return $this->controllerPath;
154
-		}
155
-
156
-		/**
157
-		 * Get the controller method
158
-		 * @return string
159
-		 */
160
-		public function getMethod(){
161
-			return $this->method;
162
-		}
163
-
164
-		/**
165
-		 * Get the request arguments
166
-		 * @return array
167
-		 */
168
-		public function getArgs(){
169
-			return $this->args;
170
-		}
171
-
172
-		/**
173
-		 * Get the URL segments array
174
-		 * @return array
175
-		 */
176
-		public function getSegments(){
177
-			return $this->segments;
178
-		}
179
-
180
-		/**
181
-	     * Return the Log instance
182
-	     * @return Log
183
-	     */
184
-	    public function getLogger(){
185
-	      return $this->logger;
186
-	    }
187
-
188
-	    /**
189
-	     * Set the log instance
190
-	     * @param Log $logger the log object
191
-		 * @return object
192
-	     */
193
-	    public function setLogger($logger){
194
-	      $this->logger = $logger;
195
-	      return $this;
196
-	    }
197
-
198
-	    /**
199
-		 * Get the route URI
200
-		 * @return string
201
-		 */
202
-		public function getRouteUri(){
203
-			return $this->uri;
204
-		}
205
-
206
-		/**
207
-		* Add the URI and callback to the list of URIs to validate
208
-		*
209
-		* @param string $uri the request URI
210
-		* @param string $callback the callback function
211
-		*
212
-		* @return object the current instance
213
-		*/
214
-		public function add($uri, $callback) {
215
-			$uri = trim($uri, $this->uriTrim);
216
-			if(in_array($uri, $this->pattern)){
217
-				$this->logger->warning('The route [' . $uri . '] already added, may be adding again can have route conflict');
218
-			}
219
-			$this->pattern[] = $uri;
220
-			$this->callback[] = $callback;
221
-			return $this;
222
-		}
223
-
224
-		/**
225
-		* Remove the route configuration
226
-		*
227
-		* @param string $uri the URI
228
-		*
229
-		* @return object the current instance
230
-		*/
231
-		public function removeRoute($uri) {
232
-			$index  = array_search($uri, $this->pattern, true);
233
-			if($index !== false){
234
-				$this->logger->info('Remove route for uri [' . $uri . '] from the configuration');
235
-				unset($this->pattern[$index]);
236
-				unset($this->callback[$index]);
237
-			}
238
-			return $this;
239
-		}
240
-
241
-
242
-		/**
243
-		* Remove all the routes from the configuration
244
-		*
245
-		* @return object the current instance
246
-		*/
247
-		public function removeAllRoute() {
248
-			$this->logger->info('Remove all routes from the configuration');
249
-			$this->pattern  = array();
250
-			$this->callback = array();
251
-			$this->routes = array();
252
-			return $this;
253
-		}
254
-
255
-
256
-		/**
257
-	     * Set the route URI to use later
258
-	     * @param string $uri the route URI, if is empty will determine automatically
259
-	     * @return object
260
-	     */
261
-	    public function setRouteUri($uri = ''){
262
-	    	$routeUri = '';
263
-	    	if(! empty($uri)){
264
-	    		$routeUri = $uri;
265
-	    	}
266
-	    	//if the application is running in CLI mode use the first argument
267
-			else if(IS_CLI && isset($_SERVER['argv'][1])){
268
-				$routeUri = $_SERVER['argv'][1];
269
-			}
270
-			else if(isset($_SERVER['REQUEST_URI'])){
271
-				$routeUri = $_SERVER['REQUEST_URI'];
272
-			}
273
-			$this->logger->debug('Check if URL suffix is enabled in the configuration');
274
-			//remove url suffix from the request URI
275
-			$suffix = get_config('url_suffix');
276
-			if ($suffix) {
277
-				$this->logger->info('URL suffix is enabled in the configuration, the value is [' . $suffix . ']' );
278
-				$routeUri = str_ireplace($suffix, '', $routeUri);
279
-			} 
280
-			if (strpos($routeUri, '?') !== false){
281
-				$routeUri = substr($routeUri, 0, strpos($routeUri, '?'));
282
-			}
283
-			$this->uri = trim($routeUri, $this->uriTrim);
284
-			return $this;
285
-	    }
286
-
287
-	     /**
288
-		 * Set the route segments informations
289
-		 * @param array $segements the route segments information
290
-		 * 
291
-		 * @return object
292
-		 */
293
-		public function setRouteSegments(array $segments = array()){
294
-			if(! empty($segments)){
295
-				$this->segments = $segments;
296
-			} else if (!empty($this->uri)) {
297
-				$this->segments = explode('/', $this->uri);
298
-			}
299
-			$segment = $this->segments;
300
-			$baseUrl = get_config('base_url');
301
-			//check if the app is not in DOCUMENT_ROOT
302
-			if(isset($segment[0]) && stripos($baseUrl, $segment[0]) !== false){
303
-				array_shift($segment);
304
-				$this->segments = $segment;
305
-			}
306
-			$this->logger->debug('Check if the request URI contains the front controller');
307
-			if(isset($segment[0]) && $segment[0] == SELF){
308
-				$this->logger->info('The request URI contains the front controller');
309
-				array_shift($segment);
310
-				$this->segments = $segment;
311
-			}
312
-			return $this;
313
-		}
314
-
315
-		/**
316
-		 * Setting the route parameters like module, controller, method, argument
317
-		 * @return object the current instance
318
-		 */
319
-		public function determineRouteParamsInformation() {
320
-			$this->logger->debug('Routing process start ...');
140
+        /**
141
+         * Get the controller name
142
+         * @return string
143
+         */
144
+        public function getController(){
145
+            return $this->controller;
146
+        }
147
+
148
+        /**
149
+         * Get the controller file path
150
+         * @return string
151
+         */
152
+        public function getControllerPath(){
153
+            return $this->controllerPath;
154
+        }
155
+
156
+        /**
157
+         * Get the controller method
158
+         * @return string
159
+         */
160
+        public function getMethod(){
161
+            return $this->method;
162
+        }
163
+
164
+        /**
165
+         * Get the request arguments
166
+         * @return array
167
+         */
168
+        public function getArgs(){
169
+            return $this->args;
170
+        }
171
+
172
+        /**
173
+         * Get the URL segments array
174
+         * @return array
175
+         */
176
+        public function getSegments(){
177
+            return $this->segments;
178
+        }
179
+
180
+        /**
181
+         * Return the Log instance
182
+         * @return Log
183
+         */
184
+        public function getLogger(){
185
+            return $this->logger;
186
+        }
187
+
188
+        /**
189
+         * Set the log instance
190
+         * @param Log $logger the log object
191
+         * @return object
192
+         */
193
+        public function setLogger($logger){
194
+            $this->logger = $logger;
195
+            return $this;
196
+        }
197
+
198
+        /**
199
+         * Get the route URI
200
+         * @return string
201
+         */
202
+        public function getRouteUri(){
203
+            return $this->uri;
204
+        }
205
+
206
+        /**
207
+         * Add the URI and callback to the list of URIs to validate
208
+         *
209
+         * @param string $uri the request URI
210
+         * @param string $callback the callback function
211
+         *
212
+         * @return object the current instance
213
+         */
214
+        public function add($uri, $callback) {
215
+            $uri = trim($uri, $this->uriTrim);
216
+            if(in_array($uri, $this->pattern)){
217
+                $this->logger->warning('The route [' . $uri . '] already added, may be adding again can have route conflict');
218
+            }
219
+            $this->pattern[] = $uri;
220
+            $this->callback[] = $callback;
221
+            return $this;
222
+        }
223
+
224
+        /**
225
+         * Remove the route configuration
226
+         *
227
+         * @param string $uri the URI
228
+         *
229
+         * @return object the current instance
230
+         */
231
+        public function removeRoute($uri) {
232
+            $index  = array_search($uri, $this->pattern, true);
233
+            if($index !== false){
234
+                $this->logger->info('Remove route for uri [' . $uri . '] from the configuration');
235
+                unset($this->pattern[$index]);
236
+                unset($this->callback[$index]);
237
+            }
238
+            return $this;
239
+        }
240
+
241
+
242
+        /**
243
+         * Remove all the routes from the configuration
244
+         *
245
+         * @return object the current instance
246
+         */
247
+        public function removeAllRoute() {
248
+            $this->logger->info('Remove all routes from the configuration');
249
+            $this->pattern  = array();
250
+            $this->callback = array();
251
+            $this->routes = array();
252
+            return $this;
253
+        }
254
+
255
+
256
+        /**
257
+         * Set the route URI to use later
258
+         * @param string $uri the route URI, if is empty will determine automatically
259
+         * @return object
260
+         */
261
+        public function setRouteUri($uri = ''){
262
+            $routeUri = '';
263
+            if(! empty($uri)){
264
+                $routeUri = $uri;
265
+            }
266
+            //if the application is running in CLI mode use the first argument
267
+            else if(IS_CLI && isset($_SERVER['argv'][1])){
268
+                $routeUri = $_SERVER['argv'][1];
269
+            }
270
+            else if(isset($_SERVER['REQUEST_URI'])){
271
+                $routeUri = $_SERVER['REQUEST_URI'];
272
+            }
273
+            $this->logger->debug('Check if URL suffix is enabled in the configuration');
274
+            //remove url suffix from the request URI
275
+            $suffix = get_config('url_suffix');
276
+            if ($suffix) {
277
+                $this->logger->info('URL suffix is enabled in the configuration, the value is [' . $suffix . ']' );
278
+                $routeUri = str_ireplace($suffix, '', $routeUri);
279
+            } 
280
+            if (strpos($routeUri, '?') !== false){
281
+                $routeUri = substr($routeUri, 0, strpos($routeUri, '?'));
282
+            }
283
+            $this->uri = trim($routeUri, $this->uriTrim);
284
+            return $this;
285
+        }
286
+
287
+            /**
288
+             * Set the route segments informations
289
+             * @param array $segements the route segments information
290
+             * 
291
+             * @return object
292
+             */
293
+        public function setRouteSegments(array $segments = array()){
294
+            if(! empty($segments)){
295
+                $this->segments = $segments;
296
+            } else if (!empty($this->uri)) {
297
+                $this->segments = explode('/', $this->uri);
298
+            }
299
+            $segment = $this->segments;
300
+            $baseUrl = get_config('base_url');
301
+            //check if the app is not in DOCUMENT_ROOT
302
+            if(isset($segment[0]) && stripos($baseUrl, $segment[0]) !== false){
303
+                array_shift($segment);
304
+                $this->segments = $segment;
305
+            }
306
+            $this->logger->debug('Check if the request URI contains the front controller');
307
+            if(isset($segment[0]) && $segment[0] == SELF){
308
+                $this->logger->info('The request URI contains the front controller');
309
+                array_shift($segment);
310
+                $this->segments = $segment;
311
+            }
312
+            return $this;
313
+        }
314
+
315
+        /**
316
+         * Setting the route parameters like module, controller, method, argument
317
+         * @return object the current instance
318
+         */
319
+        public function determineRouteParamsInformation() {
320
+            $this->logger->debug('Routing process start ...');
321 321
 			
322
-			//determine route parameters using the config
323
-			$this->determineRouteParamsFromConfig();
322
+            //determine route parameters using the config
323
+            $this->determineRouteParamsFromConfig();
324 324
 			
325
-			//if can not determine the module/controller/method via the defined routes configuration we will use
326
-			//the URL like http://domain.com/module/controller/method/arg1/arg2
327
-			if(! $this->controller){
328
-				$this->logger->info('Cannot determine the routing information using the predefined routes configuration, will use the request URI parameters');
329
-				//determine route parameters using the REQUEST_URI param
330
-				$this->determineRouteParamsFromRequestUri();
331
-			}
332
-			//Set the controller file path if not yet set
333
-			$this->setControllerFilePath();
334
-			$this->logger->debug('Routing process end.');
335
-
336
-			return $this;
337
-		}
325
+            //if can not determine the module/controller/method via the defined routes configuration we will use
326
+            //the URL like http://domain.com/module/controller/method/arg1/arg2
327
+            if(! $this->controller){
328
+                $this->logger->info('Cannot determine the routing information using the predefined routes configuration, will use the request URI parameters');
329
+                //determine route parameters using the REQUEST_URI param
330
+                $this->determineRouteParamsFromRequestUri();
331
+            }
332
+            //Set the controller file path if not yet set
333
+            $this->setControllerFilePath();
334
+            $this->logger->debug('Routing process end.');
335
+
336
+            return $this;
337
+        }
338 338
 	
339
-		 /**
340
-		 * Routing the request to the correspondant module/controller/method if exists
341
-		 * otherwise send 404 error.
342
-		 */
343
-	    public function processRequest(){
344
-	    	//Setting the route URI
345
-			$this->setRouteUri();
346
-
347
-			//setting route segments
348
-			$this->setRouteSegments();
349
-
350
-			$this->logger->info('The final Request URI is [' . implode('/', $this->segments) . ']' );
351
-
352
-	    	//determine the route parameters information
353
-	    	$this->determineRouteParamsInformation();
354
-
355
-	    	$e404 = false;
356
-	    	$classFilePath = $this->controllerPath;
357
-	    	$controller = ucfirst($this->controller);
358
-	    	$this->logger->info('The routing information are: module [' . $this->module . '], controller [' . $controller . '], method [' . $this->method . '], args [' . stringfy_vars($this->args) . ']');
359
-	    	$this->logger->debug('Loading controller [' . $controller . '], the file path is [' . $classFilePath . ']...');
339
+            /**
340
+             * Routing the request to the correspondant module/controller/method if exists
341
+             * otherwise send 404 error.
342
+             */
343
+        public function processRequest(){
344
+            //Setting the route URI
345
+            $this->setRouteUri();
346
+
347
+            //setting route segments
348
+            $this->setRouteSegments();
349
+
350
+            $this->logger->info('The final Request URI is [' . implode('/', $this->segments) . ']' );
351
+
352
+            //determine the route parameters information
353
+            $this->determineRouteParamsInformation();
354
+
355
+            $e404 = false;
356
+            $classFilePath = $this->controllerPath;
357
+            $controller = ucfirst($this->controller);
358
+            $this->logger->info('The routing information are: module [' . $this->module . '], controller [' . $controller . '], method [' . $this->method . '], args [' . stringfy_vars($this->args) . ']');
359
+            $this->logger->debug('Loading controller [' . $controller . '], the file path is [' . $classFilePath . ']...');
360 360
 	    	
361
-			if(file_exists($classFilePath)){
362
-				require_once $classFilePath;
363
-				if(! class_exists($controller, false)){
364
-					$e404 = true;
365
-					$this->logger->warning('The controller file [' .$classFilePath. '] exists but does not contain the class [' . $controller . ']');
366
-				}
367
-				else{
368
-					$controllerInstance = new $controller();
369
-					$controllerMethod = $this->getMethod();
370
-					if(! method_exists($controllerInstance, $controllerMethod)){
371
-						$e404 = true;
372
-						$this->logger->warning('The controller [' . $controller . '] exist but does not contain the method [' . $controllerMethod . ']');
373
-					}
374
-					else{
375
-						$this->logger->info('Routing data is set correctly now GO!');
376
-						call_user_func_array(array($controllerInstance, $controllerMethod), $this->args);
377
-						//render the final page to user
378
-						$this->logger->info('Render the final output to the browser');
379
-						get_instance()->response->renderFinalPage();
380
-					}
381
-				}
382
-			}
383
-			else{
384
-				$this->logger->info('The controller file path [' . $classFilePath . '] does not exist');
385
-				$e404 = true;
386
-			}
387
-			if($e404){
388
-				if(IS_CLI){
389
-					set_http_status_header(404);
390
-					echo 'Error 404: page not found.';
391
-				} else {
392
-					$response =& class_loader('Response', 'classes');
393
-					$response->send404();
394
-				}
395
-			}
396
-	    }
397
-
398
-
399
-	    /**
400
-	    * Setting the route configuration using the configuration file and additional configuration from param
401
-	    * @param array $overwriteConfig the additional configuration to overwrite with the existing one
402
-	    * @param boolean $useConfigFile whether to use route configuration file
403
-		* @return object
404
-	    */
405
-	    public function setRouteConfiguration(array $overwriteConfig = array(), $useConfigFile = true){
406
-	        $route = array();
407
-	        if ($useConfigFile && file_exists(CONFIG_PATH . 'routes.php')){
408
-	            require_once CONFIG_PATH . 'routes.php';
409
-	        }
410
-	        $route = array_merge($route, $overwriteConfig);
411
-	        $this->routes = $route;
412
-	        //if route is empty remove all configuration
413
-	        if(empty($route)){
414
-	        	$this->removeAllRoute();
415
-	        }
416
-			return $this;
417
-	    }
418
-
419
-	     /**
420
-		 * Get the route configuration
421
-		 * @return array
422
-		 */
423
-		public function getRouteConfiguration(){
424
-			return $this->routes;
425
-		}
361
+            if(file_exists($classFilePath)){
362
+                require_once $classFilePath;
363
+                if(! class_exists($controller, false)){
364
+                    $e404 = true;
365
+                    $this->logger->warning('The controller file [' .$classFilePath. '] exists but does not contain the class [' . $controller . ']');
366
+                }
367
+                else{
368
+                    $controllerInstance = new $controller();
369
+                    $controllerMethod = $this->getMethod();
370
+                    if(! method_exists($controllerInstance, $controllerMethod)){
371
+                        $e404 = true;
372
+                        $this->logger->warning('The controller [' . $controller . '] exist but does not contain the method [' . $controllerMethod . ']');
373
+                    }
374
+                    else{
375
+                        $this->logger->info('Routing data is set correctly now GO!');
376
+                        call_user_func_array(array($controllerInstance, $controllerMethod), $this->args);
377
+                        //render the final page to user
378
+                        $this->logger->info('Render the final output to the browser');
379
+                        get_instance()->response->renderFinalPage();
380
+                    }
381
+                }
382
+            }
383
+            else{
384
+                $this->logger->info('The controller file path [' . $classFilePath . '] does not exist');
385
+                $e404 = true;
386
+            }
387
+            if($e404){
388
+                if(IS_CLI){
389
+                    set_http_status_header(404);
390
+                    echo 'Error 404: page not found.';
391
+                } else {
392
+                    $response =& class_loader('Response', 'classes');
393
+                    $response->send404();
394
+                }
395
+            }
396
+        }
397
+
398
+
399
+        /**
400
+         * Setting the route configuration using the configuration file and additional configuration from param
401
+         * @param array $overwriteConfig the additional configuration to overwrite with the existing one
402
+         * @param boolean $useConfigFile whether to use route configuration file
403
+         * @return object
404
+         */
405
+        public function setRouteConfiguration(array $overwriteConfig = array(), $useConfigFile = true){
406
+            $route = array();
407
+            if ($useConfigFile && file_exists(CONFIG_PATH . 'routes.php')){
408
+                require_once CONFIG_PATH . 'routes.php';
409
+            }
410
+            $route = array_merge($route, $overwriteConfig);
411
+            $this->routes = $route;
412
+            //if route is empty remove all configuration
413
+            if(empty($route)){
414
+                $this->removeAllRoute();
415
+            }
416
+            return $this;
417
+        }
418
+
419
+            /**
420
+             * Get the route configuration
421
+             * @return array
422
+             */
423
+        public function getRouteConfiguration(){
424
+            return $this->routes;
425
+        }
426 426
 
427 427
 	    
428
-	    /**
429
-	     * Set the controller file path if is not set
430
-	     * @param string $path the file path if is null will using the route 
431
-	     * information
432
-	     *
433
-	     * @return object the current instance
434
-	     */
435
-	    public function setControllerFilePath($path = null){
436
-	    	if($path !== null){
437
-	    		$this->controllerPath = $path;
438
-	    		return $this;
439
-	    	}
440
-	    	//did we set the controller, so set the controller path
441
-			if($this->controller && ! $this->controllerPath){
442
-				$this->logger->debug('Setting the file path for the controller [' . $this->controller . ']');
443
-				$controllerPath = APPS_CONTROLLER_PATH . ucfirst($this->controller) . '.php';
444
-				//if the controller is in module
445
-				if($this->module){
446
-					$path = Module::findControllerFullPath(ucfirst($this->controller), $this->module);
447
-					if($path !== false){
448
-						$controllerPath = $path;
449
-					}
450
-				}
451
-				$this->controllerPath = $controllerPath;
452
-			}
453
-			return $this;
454
-	    }
455
-
456
-	    /**
457
-	     * Determine the route parameters from route configuration
458
-	     * @return void
459
-	     */
460
-	    protected function determineRouteParamsFromConfig(){
461
-	    	$uri = implode('/', $this->segments);
462
-	    	/*
428
+        /**
429
+         * Set the controller file path if is not set
430
+         * @param string $path the file path if is null will using the route 
431
+         * information
432
+         *
433
+         * @return object the current instance
434
+         */
435
+        public function setControllerFilePath($path = null){
436
+            if($path !== null){
437
+                $this->controllerPath = $path;
438
+                return $this;
439
+            }
440
+            //did we set the controller, so set the controller path
441
+            if($this->controller && ! $this->controllerPath){
442
+                $this->logger->debug('Setting the file path for the controller [' . $this->controller . ']');
443
+                $controllerPath = APPS_CONTROLLER_PATH . ucfirst($this->controller) . '.php';
444
+                //if the controller is in module
445
+                if($this->module){
446
+                    $path = Module::findControllerFullPath(ucfirst($this->controller), $this->module);
447
+                    if($path !== false){
448
+                        $controllerPath = $path;
449
+                    }
450
+                }
451
+                $this->controllerPath = $controllerPath;
452
+            }
453
+            return $this;
454
+        }
455
+
456
+        /**
457
+         * Determine the route parameters from route configuration
458
+         * @return void
459
+         */
460
+        protected function determineRouteParamsFromConfig(){
461
+            $uri = implode('/', $this->segments);
462
+            /*
463 463
 	   		* Generics routes patterns
464 464
 	    	*/
465
-			$pattern = array(':num', ':alpha', ':alnum', ':any');
466
-			$replace = array('[0-9]+', '[a-zA-Z]+', '[a-zA-Z0-9]+', '.*');
467
-
468
-			$this->logger->debug(
469
-									'Begin to loop in the predefined routes configuration ' 
470
-									. 'to check if the current request match'
471
-									);
472
-
473
-			// Cycle through the URIs stored in the array
474
-			foreach ($this->pattern as $index => $uriList) {
475
-				$uriList = str_ireplace($pattern, $replace, $uriList);
476
-				// Check for an existant matching URI
477
-				if (preg_match("#^$uriList$#", $uri, $args)) {
478
-					$this->logger->info(
479
-										'Route found for request URI [' . $uri . '] using the predefined configuration '
480
-										. ' [' . $this->pattern[$index] . '] --> [' . $this->callback[$index] . ']'
481
-									);
482
-					array_shift($args);
483
-					//check if this contains an module
484
-					$moduleControllerMethod = explode('#', $this->callback[$index]);
485
-					if(is_array($moduleControllerMethod) && count($moduleControllerMethod) >= 2){
486
-						$this->logger->info('The current request use the module [' . $moduleControllerMethod[0] . ']');
487
-						$this->module = $moduleControllerMethod[0];
488
-						$moduleControllerMethod = explode('@', $moduleControllerMethod[1]);
489
-					}
490
-					else{
491
-						$this->logger->info('The current request does not use the module');
492
-						$moduleControllerMethod = explode('@', $this->callback[$index]);
493
-					}
494
-					if(is_array($moduleControllerMethod)){
495
-						if(isset($moduleControllerMethod[0])){
496
-							$this->controller = $moduleControllerMethod[0];	
497
-						}
498
-						if(isset($moduleControllerMethod[1])){
499
-							$this->method = $moduleControllerMethod[1];
500
-						}
501
-						$this->args = $args;
502
-					}
503
-					// stop here
504
-					break;
505
-				}
506
-			}
507
-
508
-			//first if the controller is not set and the module is set use the module name as the controller
509
-			if(! $this->controller && $this->module){
510
-				$this->logger->info(
511
-									'After loop in predefined routes configuration, 
465
+            $pattern = array(':num', ':alpha', ':alnum', ':any');
466
+            $replace = array('[0-9]+', '[a-zA-Z]+', '[a-zA-Z0-9]+', '.*');
467
+
468
+            $this->logger->debug(
469
+                                    'Begin to loop in the predefined routes configuration ' 
470
+                                    . 'to check if the current request match'
471
+                                    );
472
+
473
+            // Cycle through the URIs stored in the array
474
+            foreach ($this->pattern as $index => $uriList) {
475
+                $uriList = str_ireplace($pattern, $replace, $uriList);
476
+                // Check for an existant matching URI
477
+                if (preg_match("#^$uriList$#", $uri, $args)) {
478
+                    $this->logger->info(
479
+                                        'Route found for request URI [' . $uri . '] using the predefined configuration '
480
+                                        . ' [' . $this->pattern[$index] . '] --> [' . $this->callback[$index] . ']'
481
+                                    );
482
+                    array_shift($args);
483
+                    //check if this contains an module
484
+                    $moduleControllerMethod = explode('#', $this->callback[$index]);
485
+                    if(is_array($moduleControllerMethod) && count($moduleControllerMethod) >= 2){
486
+                        $this->logger->info('The current request use the module [' . $moduleControllerMethod[0] . ']');
487
+                        $this->module = $moduleControllerMethod[0];
488
+                        $moduleControllerMethod = explode('@', $moduleControllerMethod[1]);
489
+                    }
490
+                    else{
491
+                        $this->logger->info('The current request does not use the module');
492
+                        $moduleControllerMethod = explode('@', $this->callback[$index]);
493
+                    }
494
+                    if(is_array($moduleControllerMethod)){
495
+                        if(isset($moduleControllerMethod[0])){
496
+                            $this->controller = $moduleControllerMethod[0];	
497
+                        }
498
+                        if(isset($moduleControllerMethod[1])){
499
+                            $this->method = $moduleControllerMethod[1];
500
+                        }
501
+                        $this->args = $args;
502
+                    }
503
+                    // stop here
504
+                    break;
505
+                }
506
+            }
507
+
508
+            //first if the controller is not set and the module is set use the module name as the controller
509
+            if(! $this->controller && $this->module){
510
+                $this->logger->info(
511
+                                    'After loop in predefined routes configuration, 
512 512
 									the module name is set but the controller is not set, 
513 513
 									so we will use module as the controller'
514
-								);
515
-				$this->controller = $this->module;
516
-			}
517
-	    }
518
-
519
-	    /**
520
-	     * Determine the route parameters using the server variable "REQUEST_URI"
521
-	     * @return void
522
-	     */
523
-	    protected function determineRouteParamsFromRequestUri(){
524
-	    	$segment = $this->segments;
525
-	    	$nbSegment = count($segment);
526
-			//if segment is null so means no need to perform
527
-			if($nbSegment > 0){
528
-				//get the module list
529
-				$modules = Module::getModuleList();
530
-				//first check if no module
531
-				if(empty($modules)){
532
-					$this->logger->info('No module was loaded will skip the module checking');
533
-					//the application don't use module
534
-					//controller
535
-					if(isset($segment[0])){
536
-						$this->controller = $segment[0];
537
-						array_shift($segment);
538
-					}
539
-					//method
540
-					if(isset($segment[0])){
541
-						$this->method = $segment[0];
542
-						array_shift($segment);
543
-					}
544
-					//args
545
-					$this->args = $segment;
546
-				}
547
-				else{
548
-					$this->logger->info('The application contains a loaded module will check if the current request is found in the module list');
549
-					if(in_array($segment[0], $modules)){
550
-						$this->logger->info('Found, the current request use the module [' . $segment[0] . ']');
551
-						$this->module = $segment[0];
552
-						array_shift($segment);
553
-						//check if the second arg is the controller from module
554
-						if(isset($segment[0])){
555
-							$this->controller = $segment[0];
556
-							//check if the request use the same module name and controller
557
-							$path = Module::findControllerFullPath(ucfirst($this->controller), $this->module);
558
-							if(! $path){
559
-								$this->logger->info('The controller [' . $this->controller . '] not found in the module, may be will use the module [' . $this->module . '] as controller');
560
-								$this->controller = $this->module;
561
-							}
562
-							else{
563
-								$this->controllerPath = $path;
564
-								array_shift($segment);
565
-							}
566
-						}
567
-						//check for method
568
-						if(isset($segment[0])){
569
-							$this->method = $segment[0];
570
-							array_shift($segment);
571
-						}
572
-						//the remaining is for args
573
-						$this->args = $segment;
574
-					}
575
-					else{
576
-						$this->logger->info('The current request information is not found in the module list');
577
-						//controller
578
-						if(isset($segment[0])){
579
-							$this->controller = $segment[0];
580
-							array_shift($segment);
581
-						}
582
-						//method
583
-						if(isset($segment[0])){
584
-							$this->method = $segment[0];
585
-							array_shift($segment);
586
-						}
587
-						//args
588
-						$this->args = $segment;
589
-					}
590
-				}
591
-				if(! $this->controller && $this->module){
592
-					$this->logger->info('After using the request URI the module name is set but the controller is not set so we will use module as the controller');
593
-					$this->controller = $this->module;
594
-				}
595
-			}
596
-	    }
597
-
598
-	    /**
599
-	     * Set the route informations using the configuration
600
-	     *
601
-	     * @return object the current instance
602
-	     */
603
-	    protected function setRouteConfigurationInfos(){
604
-	    	//adding route
605
-			foreach($this->routes as $pattern => $callback){
606
-				$this->add($pattern, $callback);
607
-			}
608
-			return $this;
609
-		}
610
-
611
-		/**
612
-	     * Set the Log instance using argument or create new instance
613
-	     * @param object $logger the Log instance if not null
614
-	     */
615
-	    protected function setLoggerFromParamOrCreateNewInstance(Log $logger = null){
616
-	      if ($logger !== null){
617
-	        $this->logger = $logger;
618
-	      }
619
-	      else{
620
-	          $this->logger =& class_loader('Log', 'classes');
621
-	          $this->logger->setLogger('Library::Router');
622
-	      }
623
-	    }
624
-	}
514
+                                );
515
+                $this->controller = $this->module;
516
+            }
517
+        }
518
+
519
+        /**
520
+         * Determine the route parameters using the server variable "REQUEST_URI"
521
+         * @return void
522
+         */
523
+        protected function determineRouteParamsFromRequestUri(){
524
+            $segment = $this->segments;
525
+            $nbSegment = count($segment);
526
+            //if segment is null so means no need to perform
527
+            if($nbSegment > 0){
528
+                //get the module list
529
+                $modules = Module::getModuleList();
530
+                //first check if no module
531
+                if(empty($modules)){
532
+                    $this->logger->info('No module was loaded will skip the module checking');
533
+                    //the application don't use module
534
+                    //controller
535
+                    if(isset($segment[0])){
536
+                        $this->controller = $segment[0];
537
+                        array_shift($segment);
538
+                    }
539
+                    //method
540
+                    if(isset($segment[0])){
541
+                        $this->method = $segment[0];
542
+                        array_shift($segment);
543
+                    }
544
+                    //args
545
+                    $this->args = $segment;
546
+                }
547
+                else{
548
+                    $this->logger->info('The application contains a loaded module will check if the current request is found in the module list');
549
+                    if(in_array($segment[0], $modules)){
550
+                        $this->logger->info('Found, the current request use the module [' . $segment[0] . ']');
551
+                        $this->module = $segment[0];
552
+                        array_shift($segment);
553
+                        //check if the second arg is the controller from module
554
+                        if(isset($segment[0])){
555
+                            $this->controller = $segment[0];
556
+                            //check if the request use the same module name and controller
557
+                            $path = Module::findControllerFullPath(ucfirst($this->controller), $this->module);
558
+                            if(! $path){
559
+                                $this->logger->info('The controller [' . $this->controller . '] not found in the module, may be will use the module [' . $this->module . '] as controller');
560
+                                $this->controller = $this->module;
561
+                            }
562
+                            else{
563
+                                $this->controllerPath = $path;
564
+                                array_shift($segment);
565
+                            }
566
+                        }
567
+                        //check for method
568
+                        if(isset($segment[0])){
569
+                            $this->method = $segment[0];
570
+                            array_shift($segment);
571
+                        }
572
+                        //the remaining is for args
573
+                        $this->args = $segment;
574
+                    }
575
+                    else{
576
+                        $this->logger->info('The current request information is not found in the module list');
577
+                        //controller
578
+                        if(isset($segment[0])){
579
+                            $this->controller = $segment[0];
580
+                            array_shift($segment);
581
+                        }
582
+                        //method
583
+                        if(isset($segment[0])){
584
+                            $this->method = $segment[0];
585
+                            array_shift($segment);
586
+                        }
587
+                        //args
588
+                        $this->args = $segment;
589
+                    }
590
+                }
591
+                if(! $this->controller && $this->module){
592
+                    $this->logger->info('After using the request URI the module name is set but the controller is not set so we will use module as the controller');
593
+                    $this->controller = $this->module;
594
+                }
595
+            }
596
+        }
597
+
598
+        /**
599
+         * Set the route informations using the configuration
600
+         *
601
+         * @return object the current instance
602
+         */
603
+        protected function setRouteConfigurationInfos(){
604
+            //adding route
605
+            foreach($this->routes as $pattern => $callback){
606
+                $this->add($pattern, $callback);
607
+            }
608
+            return $this;
609
+        }
610
+
611
+        /**
612
+         * Set the Log instance using argument or create new instance
613
+         * @param object $logger the Log instance if not null
614
+         */
615
+        protected function setLoggerFromParamOrCreateNewInstance(Log $logger = null){
616
+            if ($logger !== null){
617
+            $this->logger = $logger;
618
+            }
619
+            else{
620
+                $this->logger =& class_loader('Log', 'classes');
621
+                $this->logger->setLogger('Library::Router');
622
+            }
623
+        }
624
+    }
Please login to merge, or discard this patch.
Spacing   +76 added lines, -76 removed lines patch added patch discarded remove patch
@@ -96,13 +96,13 @@  discard block
 block discarded – undo
96 96
 		/**
97 97
 		 * Construct the new Router instance
98 98
 		 */
99
-		public function __construct(){
99
+		public function __construct() {
100 100
 			$this->setLoggerFromParamOrCreateNewInstance(null);
101 101
 			
102 102
 			//loading routes for module
103 103
 			$moduleRouteList = array();
104 104
 			$modulesRoutes = Module::getModulesRoutes();
105
-			if($modulesRoutes && is_array($modulesRoutes)){
105
+			if ($modulesRoutes && is_array($modulesRoutes)) {
106 106
 				$moduleRouteList = $modulesRoutes;
107 107
 				unset($modulesRoutes);
108 108
 			}
@@ -117,7 +117,7 @@  discard block
 block discarded – undo
117 117
 		 * Get the route patterns
118 118
 		 * @return array
119 119
 		 */
120
-		public function getPattern(){
120
+		public function getPattern() {
121 121
 			return $this->pattern;
122 122
 		}
123 123
 
@@ -125,7 +125,7 @@  discard block
 block discarded – undo
125 125
 		 * Get the route callbacks
126 126
 		 * @return array
127 127
 		 */
128
-		public function getCallback(){
128
+		public function getCallback() {
129 129
 			return $this->callback;
130 130
 		}
131 131
 
@@ -133,7 +133,7 @@  discard block
 block discarded – undo
133 133
 		 * Get the module name
134 134
 		 * @return string
135 135
 		 */
136
-		public function getModule(){
136
+		public function getModule() {
137 137
 			return $this->module;
138 138
 		}
139 139
 		
@@ -141,7 +141,7 @@  discard block
 block discarded – undo
141 141
 		 * Get the controller name
142 142
 		 * @return string
143 143
 		 */
144
-		public function getController(){
144
+		public function getController() {
145 145
 			return $this->controller;
146 146
 		}
147 147
 
@@ -149,7 +149,7 @@  discard block
 block discarded – undo
149 149
 		 * Get the controller file path
150 150
 		 * @return string
151 151
 		 */
152
-		public function getControllerPath(){
152
+		public function getControllerPath() {
153 153
 			return $this->controllerPath;
154 154
 		}
155 155
 
@@ -157,7 +157,7 @@  discard block
 block discarded – undo
157 157
 		 * Get the controller method
158 158
 		 * @return string
159 159
 		 */
160
-		public function getMethod(){
160
+		public function getMethod() {
161 161
 			return $this->method;
162 162
 		}
163 163
 
@@ -165,7 +165,7 @@  discard block
 block discarded – undo
165 165
 		 * Get the request arguments
166 166
 		 * @return array
167 167
 		 */
168
-		public function getArgs(){
168
+		public function getArgs() {
169 169
 			return $this->args;
170 170
 		}
171 171
 
@@ -173,7 +173,7 @@  discard block
 block discarded – undo
173 173
 		 * Get the URL segments array
174 174
 		 * @return array
175 175
 		 */
176
-		public function getSegments(){
176
+		public function getSegments() {
177 177
 			return $this->segments;
178 178
 		}
179 179
 
@@ -181,7 +181,7 @@  discard block
 block discarded – undo
181 181
 	     * Return the Log instance
182 182
 	     * @return Log
183 183
 	     */
184
-	    public function getLogger(){
184
+	    public function getLogger() {
185 185
 	      return $this->logger;
186 186
 	    }
187 187
 
@@ -190,7 +190,7 @@  discard block
 block discarded – undo
190 190
 	     * @param Log $logger the log object
191 191
 		 * @return object
192 192
 	     */
193
-	    public function setLogger($logger){
193
+	    public function setLogger($logger) {
194 194
 	      $this->logger = $logger;
195 195
 	      return $this;
196 196
 	    }
@@ -199,7 +199,7 @@  discard block
 block discarded – undo
199 199
 		 * Get the route URI
200 200
 		 * @return string
201 201
 		 */
202
-		public function getRouteUri(){
202
+		public function getRouteUri() {
203 203
 			return $this->uri;
204 204
 		}
205 205
 
@@ -213,7 +213,7 @@  discard block
 block discarded – undo
213 213
 		*/
214 214
 		public function add($uri, $callback) {
215 215
 			$uri = trim($uri, $this->uriTrim);
216
-			if(in_array($uri, $this->pattern)){
216
+			if (in_array($uri, $this->pattern)) {
217 217
 				$this->logger->warning('The route [' . $uri . '] already added, may be adding again can have route conflict');
218 218
 			}
219 219
 			$this->pattern[] = $uri;
@@ -229,8 +229,8 @@  discard block
 block discarded – undo
229 229
 		* @return object the current instance
230 230
 		*/
231 231
 		public function removeRoute($uri) {
232
-			$index  = array_search($uri, $this->pattern, true);
233
-			if($index !== false){
232
+			$index = array_search($uri, $this->pattern, true);
233
+			if ($index !== false) {
234 234
 				$this->logger->info('Remove route for uri [' . $uri . '] from the configuration');
235 235
 				unset($this->pattern[$index]);
236 236
 				unset($this->callback[$index]);
@@ -258,26 +258,26 @@  discard block
 block discarded – undo
258 258
 	     * @param string $uri the route URI, if is empty will determine automatically
259 259
 	     * @return object
260 260
 	     */
261
-	    public function setRouteUri($uri = ''){
261
+	    public function setRouteUri($uri = '') {
262 262
 	    	$routeUri = '';
263
-	    	if(! empty($uri)){
263
+	    	if (!empty($uri)) {
264 264
 	    		$routeUri = $uri;
265 265
 	    	}
266 266
 	    	//if the application is running in CLI mode use the first argument
267
-			else if(IS_CLI && isset($_SERVER['argv'][1])){
267
+			else if (IS_CLI && isset($_SERVER['argv'][1])) {
268 268
 				$routeUri = $_SERVER['argv'][1];
269 269
 			}
270
-			else if(isset($_SERVER['REQUEST_URI'])){
270
+			else if (isset($_SERVER['REQUEST_URI'])) {
271 271
 				$routeUri = $_SERVER['REQUEST_URI'];
272 272
 			}
273 273
 			$this->logger->debug('Check if URL suffix is enabled in the configuration');
274 274
 			//remove url suffix from the request URI
275 275
 			$suffix = get_config('url_suffix');
276 276
 			if ($suffix) {
277
-				$this->logger->info('URL suffix is enabled in the configuration, the value is [' . $suffix . ']' );
277
+				$this->logger->info('URL suffix is enabled in the configuration, the value is [' . $suffix . ']');
278 278
 				$routeUri = str_ireplace($suffix, '', $routeUri);
279 279
 			} 
280
-			if (strpos($routeUri, '?') !== false){
280
+			if (strpos($routeUri, '?') !== false) {
281 281
 				$routeUri = substr($routeUri, 0, strpos($routeUri, '?'));
282 282
 			}
283 283
 			$this->uri = trim($routeUri, $this->uriTrim);
@@ -290,8 +290,8 @@  discard block
 block discarded – undo
290 290
 		 * 
291 291
 		 * @return object
292 292
 		 */
293
-		public function setRouteSegments(array $segments = array()){
294
-			if(! empty($segments)){
293
+		public function setRouteSegments(array $segments = array()) {
294
+			if (!empty($segments)) {
295 295
 				$this->segments = $segments;
296 296
 			} else if (!empty($this->uri)) {
297 297
 				$this->segments = explode('/', $this->uri);
@@ -299,12 +299,12 @@  discard block
 block discarded – undo
299 299
 			$segment = $this->segments;
300 300
 			$baseUrl = get_config('base_url');
301 301
 			//check if the app is not in DOCUMENT_ROOT
302
-			if(isset($segment[0]) && stripos($baseUrl, $segment[0]) !== false){
302
+			if (isset($segment[0]) && stripos($baseUrl, $segment[0]) !== false) {
303 303
 				array_shift($segment);
304 304
 				$this->segments = $segment;
305 305
 			}
306 306
 			$this->logger->debug('Check if the request URI contains the front controller');
307
-			if(isset($segment[0]) && $segment[0] == SELF){
307
+			if (isset($segment[0]) && $segment[0] == SELF) {
308 308
 				$this->logger->info('The request URI contains the front controller');
309 309
 				array_shift($segment);
310 310
 				$this->segments = $segment;
@@ -324,7 +324,7 @@  discard block
 block discarded – undo
324 324
 			
325 325
 			//if can not determine the module/controller/method via the defined routes configuration we will use
326 326
 			//the URL like http://domain.com/module/controller/method/arg1/arg2
327
-			if(! $this->controller){
327
+			if (!$this->controller) {
328 328
 				$this->logger->info('Cannot determine the routing information using the predefined routes configuration, will use the request URI parameters');
329 329
 				//determine route parameters using the REQUEST_URI param
330 330
 				$this->determineRouteParamsFromRequestUri();
@@ -340,14 +340,14 @@  discard block
 block discarded – undo
340 340
 		 * Routing the request to the correspondant module/controller/method if exists
341 341
 		 * otherwise send 404 error.
342 342
 		 */
343
-	    public function processRequest(){
343
+	    public function processRequest() {
344 344
 	    	//Setting the route URI
345 345
 			$this->setRouteUri();
346 346
 
347 347
 			//setting route segments
348 348
 			$this->setRouteSegments();
349 349
 
350
-			$this->logger->info('The final Request URI is [' . implode('/', $this->segments) . ']' );
350
+			$this->logger->info('The final Request URI is [' . implode('/', $this->segments) . ']');
351 351
 
352 352
 	    	//determine the route parameters information
353 353
 	    	$this->determineRouteParamsInformation();
@@ -358,20 +358,20 @@  discard block
 block discarded – undo
358 358
 	    	$this->logger->info('The routing information are: module [' . $this->module . '], controller [' . $controller . '], method [' . $this->method . '], args [' . stringfy_vars($this->args) . ']');
359 359
 	    	$this->logger->debug('Loading controller [' . $controller . '], the file path is [' . $classFilePath . ']...');
360 360
 	    	
361
-			if(file_exists($classFilePath)){
361
+			if (file_exists($classFilePath)) {
362 362
 				require_once $classFilePath;
363
-				if(! class_exists($controller, false)){
363
+				if (!class_exists($controller, false)) {
364 364
 					$e404 = true;
365
-					$this->logger->warning('The controller file [' .$classFilePath. '] exists but does not contain the class [' . $controller . ']');
365
+					$this->logger->warning('The controller file [' . $classFilePath . '] exists but does not contain the class [' . $controller . ']');
366 366
 				}
367
-				else{
367
+				else {
368 368
 					$controllerInstance = new $controller();
369 369
 					$controllerMethod = $this->getMethod();
370
-					if(! method_exists($controllerInstance, $controllerMethod)){
370
+					if (!method_exists($controllerInstance, $controllerMethod)) {
371 371
 						$e404 = true;
372 372
 						$this->logger->warning('The controller [' . $controller . '] exist but does not contain the method [' . $controllerMethod . ']');
373 373
 					}
374
-					else{
374
+					else {
375 375
 						$this->logger->info('Routing data is set correctly now GO!');
376 376
 						call_user_func_array(array($controllerInstance, $controllerMethod), $this->args);
377 377
 						//render the final page to user
@@ -380,16 +380,16 @@  discard block
 block discarded – undo
380 380
 					}
381 381
 				}
382 382
 			}
383
-			else{
383
+			else {
384 384
 				$this->logger->info('The controller file path [' . $classFilePath . '] does not exist');
385 385
 				$e404 = true;
386 386
 			}
387
-			if($e404){
388
-				if(IS_CLI){
387
+			if ($e404) {
388
+				if (IS_CLI) {
389 389
 					set_http_status_header(404);
390 390
 					echo 'Error 404: page not found.';
391 391
 				} else {
392
-					$response =& class_loader('Response', 'classes');
392
+					$response = & class_loader('Response', 'classes');
393 393
 					$response->send404();
394 394
 				}
395 395
 			}
@@ -402,15 +402,15 @@  discard block
 block discarded – undo
402 402
 	    * @param boolean $useConfigFile whether to use route configuration file
403 403
 		* @return object
404 404
 	    */
405
-	    public function setRouteConfiguration(array $overwriteConfig = array(), $useConfigFile = true){
405
+	    public function setRouteConfiguration(array $overwriteConfig = array(), $useConfigFile = true) {
406 406
 	        $route = array();
407
-	        if ($useConfigFile && file_exists(CONFIG_PATH . 'routes.php')){
407
+	        if ($useConfigFile && file_exists(CONFIG_PATH . 'routes.php')) {
408 408
 	            require_once CONFIG_PATH . 'routes.php';
409 409
 	        }
410 410
 	        $route = array_merge($route, $overwriteConfig);
411 411
 	        $this->routes = $route;
412 412
 	        //if route is empty remove all configuration
413
-	        if(empty($route)){
413
+	        if (empty($route)) {
414 414
 	        	$this->removeAllRoute();
415 415
 	        }
416 416
 			return $this;
@@ -420,7 +420,7 @@  discard block
 block discarded – undo
420 420
 		 * Get the route configuration
421 421
 		 * @return array
422 422
 		 */
423
-		public function getRouteConfiguration(){
423
+		public function getRouteConfiguration() {
424 424
 			return $this->routes;
425 425
 		}
426 426
 
@@ -432,19 +432,19 @@  discard block
 block discarded – undo
432 432
 	     *
433 433
 	     * @return object the current instance
434 434
 	     */
435
-	    public function setControllerFilePath($path = null){
436
-	    	if($path !== null){
435
+	    public function setControllerFilePath($path = null) {
436
+	    	if ($path !== null) {
437 437
 	    		$this->controllerPath = $path;
438 438
 	    		return $this;
439 439
 	    	}
440 440
 	    	//did we set the controller, so set the controller path
441
-			if($this->controller && ! $this->controllerPath){
441
+			if ($this->controller && !$this->controllerPath) {
442 442
 				$this->logger->debug('Setting the file path for the controller [' . $this->controller . ']');
443 443
 				$controllerPath = APPS_CONTROLLER_PATH . ucfirst($this->controller) . '.php';
444 444
 				//if the controller is in module
445
-				if($this->module){
445
+				if ($this->module) {
446 446
 					$path = Module::findControllerFullPath(ucfirst($this->controller), $this->module);
447
-					if($path !== false){
447
+					if ($path !== false) {
448 448
 						$controllerPath = $path;
449 449
 					}
450 450
 				}
@@ -457,7 +457,7 @@  discard block
 block discarded – undo
457 457
 	     * Determine the route parameters from route configuration
458 458
 	     * @return void
459 459
 	     */
460
-	    protected function determineRouteParamsFromConfig(){
460
+	    protected function determineRouteParamsFromConfig() {
461 461
 	    	$uri = implode('/', $this->segments);
462 462
 	    	/*
463 463
 	   		* Generics routes patterns
@@ -482,20 +482,20 @@  discard block
 block discarded – undo
482 482
 					array_shift($args);
483 483
 					//check if this contains an module
484 484
 					$moduleControllerMethod = explode('#', $this->callback[$index]);
485
-					if(is_array($moduleControllerMethod) && count($moduleControllerMethod) >= 2){
485
+					if (is_array($moduleControllerMethod) && count($moduleControllerMethod) >= 2) {
486 486
 						$this->logger->info('The current request use the module [' . $moduleControllerMethod[0] . ']');
487 487
 						$this->module = $moduleControllerMethod[0];
488 488
 						$moduleControllerMethod = explode('@', $moduleControllerMethod[1]);
489 489
 					}
490
-					else{
490
+					else {
491 491
 						$this->logger->info('The current request does not use the module');
492 492
 						$moduleControllerMethod = explode('@', $this->callback[$index]);
493 493
 					}
494
-					if(is_array($moduleControllerMethod)){
495
-						if(isset($moduleControllerMethod[0])){
494
+					if (is_array($moduleControllerMethod)) {
495
+						if (isset($moduleControllerMethod[0])) {
496 496
 							$this->controller = $moduleControllerMethod[0];	
497 497
 						}
498
-						if(isset($moduleControllerMethod[1])){
498
+						if (isset($moduleControllerMethod[1])) {
499 499
 							$this->method = $moduleControllerMethod[1];
500 500
 						}
501 501
 						$this->args = $args;
@@ -506,7 +506,7 @@  discard block
 block discarded – undo
506 506
 			}
507 507
 
508 508
 			//first if the controller is not set and the module is set use the module name as the controller
509
-			if(! $this->controller && $this->module){
509
+			if (!$this->controller && $this->module) {
510 510
 				$this->logger->info(
511 511
 									'After loop in predefined routes configuration, 
512 512
 									the module name is set but the controller is not set, 
@@ -520,67 +520,67 @@  discard block
 block discarded – undo
520 520
 	     * Determine the route parameters using the server variable "REQUEST_URI"
521 521
 	     * @return void
522 522
 	     */
523
-	    protected function determineRouteParamsFromRequestUri(){
523
+	    protected function determineRouteParamsFromRequestUri() {
524 524
 	    	$segment = $this->segments;
525 525
 	    	$nbSegment = count($segment);
526 526
 			//if segment is null so means no need to perform
527
-			if($nbSegment > 0){
527
+			if ($nbSegment > 0) {
528 528
 				//get the module list
529 529
 				$modules = Module::getModuleList();
530 530
 				//first check if no module
531
-				if(empty($modules)){
531
+				if (empty($modules)) {
532 532
 					$this->logger->info('No module was loaded will skip the module checking');
533 533
 					//the application don't use module
534 534
 					//controller
535
-					if(isset($segment[0])){
535
+					if (isset($segment[0])) {
536 536
 						$this->controller = $segment[0];
537 537
 						array_shift($segment);
538 538
 					}
539 539
 					//method
540
-					if(isset($segment[0])){
540
+					if (isset($segment[0])) {
541 541
 						$this->method = $segment[0];
542 542
 						array_shift($segment);
543 543
 					}
544 544
 					//args
545 545
 					$this->args = $segment;
546 546
 				}
547
-				else{
547
+				else {
548 548
 					$this->logger->info('The application contains a loaded module will check if the current request is found in the module list');
549
-					if(in_array($segment[0], $modules)){
549
+					if (in_array($segment[0], $modules)) {
550 550
 						$this->logger->info('Found, the current request use the module [' . $segment[0] . ']');
551 551
 						$this->module = $segment[0];
552 552
 						array_shift($segment);
553 553
 						//check if the second arg is the controller from module
554
-						if(isset($segment[0])){
554
+						if (isset($segment[0])) {
555 555
 							$this->controller = $segment[0];
556 556
 							//check if the request use the same module name and controller
557 557
 							$path = Module::findControllerFullPath(ucfirst($this->controller), $this->module);
558
-							if(! $path){
558
+							if (!$path) {
559 559
 								$this->logger->info('The controller [' . $this->controller . '] not found in the module, may be will use the module [' . $this->module . '] as controller');
560 560
 								$this->controller = $this->module;
561 561
 							}
562
-							else{
562
+							else {
563 563
 								$this->controllerPath = $path;
564 564
 								array_shift($segment);
565 565
 							}
566 566
 						}
567 567
 						//check for method
568
-						if(isset($segment[0])){
568
+						if (isset($segment[0])) {
569 569
 							$this->method = $segment[0];
570 570
 							array_shift($segment);
571 571
 						}
572 572
 						//the remaining is for args
573 573
 						$this->args = $segment;
574 574
 					}
575
-					else{
575
+					else {
576 576
 						$this->logger->info('The current request information is not found in the module list');
577 577
 						//controller
578
-						if(isset($segment[0])){
578
+						if (isset($segment[0])) {
579 579
 							$this->controller = $segment[0];
580 580
 							array_shift($segment);
581 581
 						}
582 582
 						//method
583
-						if(isset($segment[0])){
583
+						if (isset($segment[0])) {
584 584
 							$this->method = $segment[0];
585 585
 							array_shift($segment);
586 586
 						}
@@ -588,7 +588,7 @@  discard block
 block discarded – undo
588 588
 						$this->args = $segment;
589 589
 					}
590 590
 				}
591
-				if(! $this->controller && $this->module){
591
+				if (!$this->controller && $this->module) {
592 592
 					$this->logger->info('After using the request URI the module name is set but the controller is not set so we will use module as the controller');
593 593
 					$this->controller = $this->module;
594 594
 				}
@@ -600,9 +600,9 @@  discard block
 block discarded – undo
600 600
 	     *
601 601
 	     * @return object the current instance
602 602
 	     */
603
-	    protected function setRouteConfigurationInfos(){
603
+	    protected function setRouteConfigurationInfos() {
604 604
 	    	//adding route
605
-			foreach($this->routes as $pattern => $callback){
605
+			foreach ($this->routes as $pattern => $callback) {
606 606
 				$this->add($pattern, $callback);
607 607
 			}
608 608
 			return $this;
@@ -612,12 +612,12 @@  discard block
 block discarded – undo
612 612
 	     * Set the Log instance using argument or create new instance
613 613
 	     * @param object $logger the Log instance if not null
614 614
 	     */
615
-	    protected function setLoggerFromParamOrCreateNewInstance(Log $logger = null){
616
-	      if ($logger !== null){
615
+	    protected function setLoggerFromParamOrCreateNewInstance(Log $logger = null) {
616
+	      if ($logger !== null) {
617 617
 	        $this->logger = $logger;
618 618
 	      }
619
-	      else{
620
-	          $this->logger =& class_loader('Log', 'classes');
619
+	      else {
620
+	          $this->logger = & class_loader('Log', 'classes');
621 621
 	          $this->logger->setLogger('Library::Router');
622 622
 	      }
623 623
 	    }
Please login to merge, or discard this patch.
Braces   +9 added lines, -18 removed lines patch added patch discarded remove patch
@@ -266,8 +266,7 @@  discard block
 block discarded – undo
266 266
 	    	//if the application is running in CLI mode use the first argument
267 267
 			else if(IS_CLI && isset($_SERVER['argv'][1])){
268 268
 				$routeUri = $_SERVER['argv'][1];
269
-			}
270
-			else if(isset($_SERVER['REQUEST_URI'])){
269
+			} else if(isset($_SERVER['REQUEST_URI'])){
271 270
 				$routeUri = $_SERVER['REQUEST_URI'];
272 271
 			}
273 272
 			$this->logger->debug('Check if URL suffix is enabled in the configuration');
@@ -363,15 +362,13 @@  discard block
 block discarded – undo
363 362
 				if(! class_exists($controller, false)){
364 363
 					$e404 = true;
365 364
 					$this->logger->warning('The controller file [' .$classFilePath. '] exists but does not contain the class [' . $controller . ']');
366
-				}
367
-				else{
365
+				} else{
368 366
 					$controllerInstance = new $controller();
369 367
 					$controllerMethod = $this->getMethod();
370 368
 					if(! method_exists($controllerInstance, $controllerMethod)){
371 369
 						$e404 = true;
372 370
 						$this->logger->warning('The controller [' . $controller . '] exist but does not contain the method [' . $controllerMethod . ']');
373
-					}
374
-					else{
371
+					} else{
375 372
 						$this->logger->info('Routing data is set correctly now GO!');
376 373
 						call_user_func_array(array($controllerInstance, $controllerMethod), $this->args);
377 374
 						//render the final page to user
@@ -379,8 +376,7 @@  discard block
 block discarded – undo
379 376
 						get_instance()->response->renderFinalPage();
380 377
 					}
381 378
 				}
382
-			}
383
-			else{
379
+			} else{
384 380
 				$this->logger->info('The controller file path [' . $classFilePath . '] does not exist');
385 381
 				$e404 = true;
386 382
 			}
@@ -486,8 +482,7 @@  discard block
 block discarded – undo
486 482
 						$this->logger->info('The current request use the module [' . $moduleControllerMethod[0] . ']');
487 483
 						$this->module = $moduleControllerMethod[0];
488 484
 						$moduleControllerMethod = explode('@', $moduleControllerMethod[1]);
489
-					}
490
-					else{
485
+					} else{
491 486
 						$this->logger->info('The current request does not use the module');
492 487
 						$moduleControllerMethod = explode('@', $this->callback[$index]);
493 488
 					}
@@ -543,8 +538,7 @@  discard block
 block discarded – undo
543 538
 					}
544 539
 					//args
545 540
 					$this->args = $segment;
546
-				}
547
-				else{
541
+				} else{
548 542
 					$this->logger->info('The application contains a loaded module will check if the current request is found in the module list');
549 543
 					if(in_array($segment[0], $modules)){
550 544
 						$this->logger->info('Found, the current request use the module [' . $segment[0] . ']');
@@ -558,8 +552,7 @@  discard block
 block discarded – undo
558 552
 							if(! $path){
559 553
 								$this->logger->info('The controller [' . $this->controller . '] not found in the module, may be will use the module [' . $this->module . '] as controller');
560 554
 								$this->controller = $this->module;
561
-							}
562
-							else{
555
+							} else{
563 556
 								$this->controllerPath = $path;
564 557
 								array_shift($segment);
565 558
 							}
@@ -571,8 +564,7 @@  discard block
 block discarded – undo
571 564
 						}
572 565
 						//the remaining is for args
573 566
 						$this->args = $segment;
574
-					}
575
-					else{
567
+					} else{
576 568
 						$this->logger->info('The current request information is not found in the module list');
577 569
 						//controller
578 570
 						if(isset($segment[0])){
@@ -615,8 +607,7 @@  discard block
 block discarded – undo
615 607
 	    protected function setLoggerFromParamOrCreateNewInstance(Log $logger = null){
616 608
 	      if ($logger !== null){
617 609
 	        $this->logger = $logger;
618
-	      }
619
-	      else{
610
+	      } else{
620 611
 	          $this->logger =& class_loader('Log', 'classes');
621 612
 	          $this->logger->setLogger('Library::Router');
622 613
 	      }
Please login to merge, or discard this patch.
core/classes/Security.php 3 patches
Indentation   +147 added lines, -147 removed lines patch added patch discarded remove patch
@@ -1,157 +1,157 @@
 block discarded – undo
1 1
 <?php
2
-	defined('ROOT_PATH') or exit('Access denied');
3
-	/**
4
-	 * TNH Framework
5
-	 *
6
-	 * A simple PHP framework using HMVC architecture
7
-	 *
8
-	 * This content is released under the GNU GPL License (GPL)
9
-	 *
10
-	 * Copyright (C) 2017 Tony NGUEREZA
11
-	 *
12
-	 * This program is free software; you can redistribute it and/or
13
-	 * modify it under the terms of the GNU General Public License
14
-	 * as published by the Free Software Foundation; either version 3
15
-	 * of the License, or (at your option) any later version.
16
-	 *
17
-	 * This program is distributed in the hope that it will be useful,
18
-	 * but WITHOUT ANY WARRANTY; without even the implied warranty of
19
-	 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
20
-	 * GNU General Public License for more details.
21
-	 *
22
-	 * You should have received a copy of the GNU General Public License
23
-	 * along with this program; if not, write to the Free Software
24
-	 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
25
-	*/
2
+    defined('ROOT_PATH') or exit('Access denied');
3
+    /**
4
+     * TNH Framework
5
+     *
6
+     * A simple PHP framework using HMVC architecture
7
+     *
8
+     * This content is released under the GNU GPL License (GPL)
9
+     *
10
+     * Copyright (C) 2017 Tony NGUEREZA
11
+     *
12
+     * This program is free software; you can redistribute it and/or
13
+     * modify it under the terms of the GNU General Public License
14
+     * as published by the Free Software Foundation; either version 3
15
+     * of the License, or (at your option) any later version.
16
+     *
17
+     * This program is distributed in the hope that it will be useful,
18
+     * but WITHOUT ANY WARRANTY; without even the implied warranty of
19
+     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
20
+     * GNU General Public License for more details.
21
+     *
22
+     * You should have received a copy of the GNU General Public License
23
+     * along with this program; if not, write to the Free Software
24
+     * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
25
+     */
26 26
 
27
-	class Security{
27
+    class Security{
28 28
 		
29
-		/**
30
-		 * The logger instance
31
-		 * @var Log
32
-		 */
33
-		private static $logger;
29
+        /**
30
+         * The logger instance
31
+         * @var Log
32
+         */
33
+        private static $logger;
34 34
 
35
-		/**
36
-		 * Get the logger singleton instance
37
-		 * @return Log the logger instance
38
-		 */
39
-		private static function getLogger(){
40
-			if(self::$logger == null){
41
-				self::$logger[0] =& class_loader('Log', 'classes');
42
-				self::$logger[0]->setLogger('Library::Security');
43
-			}
44
-			return self::$logger[0];
45
-		}
35
+        /**
36
+         * Get the logger singleton instance
37
+         * @return Log the logger instance
38
+         */
39
+        private static function getLogger(){
40
+            if(self::$logger == null){
41
+                self::$logger[0] =& class_loader('Log', 'classes');
42
+                self::$logger[0]->setLogger('Library::Security');
43
+            }
44
+            return self::$logger[0];
45
+        }
46 46
 
47 47
 
48
-		/**
49
-		 * This method is used to generate the CSRF token
50
-		 * @return string the generated CSRF token
51
-		 */
52
-		public static function generateCSRF(){
53
-			$logger = self::getLogger();
54
-			$logger->debug('Generation of CSRF ...');
48
+        /**
49
+         * This method is used to generate the CSRF token
50
+         * @return string the generated CSRF token
51
+         */
52
+        public static function generateCSRF(){
53
+            $logger = self::getLogger();
54
+            $logger->debug('Generation of CSRF ...');
55 55
 			
56
-			$key = get_config('csrf_key', 'csrf_key');
57
-			$expire = get_config('csrf_expire', 60);
58
-			$keyExpire = 'csrf_expire';
59
-			$currentTime = time();
60
-			if(Session::exists($key) && Session::exists($keyExpire) && Session::get($keyExpire) > $currentTime){
61
-				$logger->info('The CSRF token not yet expire just return it');
62
-				return Session::get($key);
63
-			}
64
-			else{
65
-				$newTime = $currentTime + $expire;
66
-				$token = sha1(uniqid()) . sha1(uniqid());
67
-				$logger->info('The CSRF informations are listed below: key [' .$key. '], key expire [' .$keyExpire. '], expire time [' .$expire. '], token [' .$token. ']');
68
-				Session::set($keyExpire, $newTime);
69
-				Session::set($key, $token);
70
-				return Session::get($key);
71
-			}
72
-		}
56
+            $key = get_config('csrf_key', 'csrf_key');
57
+            $expire = get_config('csrf_expire', 60);
58
+            $keyExpire = 'csrf_expire';
59
+            $currentTime = time();
60
+            if(Session::exists($key) && Session::exists($keyExpire) && Session::get($keyExpire) > $currentTime){
61
+                $logger->info('The CSRF token not yet expire just return it');
62
+                return Session::get($key);
63
+            }
64
+            else{
65
+                $newTime = $currentTime + $expire;
66
+                $token = sha1(uniqid()) . sha1(uniqid());
67
+                $logger->info('The CSRF informations are listed below: key [' .$key. '], key expire [' .$keyExpire. '], expire time [' .$expire. '], token [' .$token. ']');
68
+                Session::set($keyExpire, $newTime);
69
+                Session::set($key, $token);
70
+                return Session::get($key);
71
+            }
72
+        }
73 73
 
74
-		/**
75
-		 * This method is used to check the CSRF if is valid, not yet expire, etc.
76
-		 * @return boolean true if valid, false if not valid
77
-		 */
78
-		public static function validateCSRF(){
79
-			$logger = self::getLogger();
80
-			$logger->debug('Validation of CSRF ...');
74
+        /**
75
+         * This method is used to check the CSRF if is valid, not yet expire, etc.
76
+         * @return boolean true if valid, false if not valid
77
+         */
78
+        public static function validateCSRF(){
79
+            $logger = self::getLogger();
80
+            $logger->debug('Validation of CSRF ...');
81 81
 				
82
-			$key = get_config('csrf_key', 'csrf_key');
83
-			$expire = get_config('csrf_expire', 60);
84
-			$keyExpire = 'csrf_expire';
85
-			$currentTime = time();
86
-			$logger->info('The CSRF informations are listed below: key [' .$key. '], key expire [' .$keyExpire. '], expire time [' .$expire. ']');
87
-			if(! Session::exists($key) || Session::get($keyExpire) <= $currentTime){
88
-				$logger->warning('The CSRF session data is not valide');
89
-				return false;
90
-			}
91
-			//perform form data
92
-			//need use request->query() for best retrieve
93
-			//super instance
94
-			$obj = & get_instance();
95
-			$token = $obj->request->query($key);
96
-			if(! $token || $token !== Session::get($key) || Session::get($keyExpire) <= $currentTime){
97
-				$logger->warning('The CSRF data [' .$token. '] is not valide may be attacker do his job');
98
-				return false;
99
-			}
100
-			$logger->info('The CSRF data [' .$token. '] is valide the form data is safe continue');
101
-			//remove the token from session
102
-			Session::clear($key);
103
-			Session::clear($keyExpire);
104
-			return true;
105
-		}
82
+            $key = get_config('csrf_key', 'csrf_key');
83
+            $expire = get_config('csrf_expire', 60);
84
+            $keyExpire = 'csrf_expire';
85
+            $currentTime = time();
86
+            $logger->info('The CSRF informations are listed below: key [' .$key. '], key expire [' .$keyExpire. '], expire time [' .$expire. ']');
87
+            if(! Session::exists($key) || Session::get($keyExpire) <= $currentTime){
88
+                $logger->warning('The CSRF session data is not valide');
89
+                return false;
90
+            }
91
+            //perform form data
92
+            //need use request->query() for best retrieve
93
+            //super instance
94
+            $obj = & get_instance();
95
+            $token = $obj->request->query($key);
96
+            if(! $token || $token !== Session::get($key) || Session::get($keyExpire) <= $currentTime){
97
+                $logger->warning('The CSRF data [' .$token. '] is not valide may be attacker do his job');
98
+                return false;
99
+            }
100
+            $logger->info('The CSRF data [' .$token. '] is valide the form data is safe continue');
101
+            //remove the token from session
102
+            Session::clear($key);
103
+            Session::clear($keyExpire);
104
+            return true;
105
+        }
106 106
 		
107
-		/**
108
-		 * This method is used to check the whitelist IP address access
109
-		 */
110
-		 public static function checkWhiteListIpAccess(){
111
-			$logger = self::getLogger();
112
-			$logger->debug('Validation of the IP address access ...');
113
-			$logger->debug('Check if whitelist IP access is enabled in the configuration ...');
114
-			$isEnable = get_config('white_list_ip_enable', false);
115
-			if($isEnable){
116
-				$logger->info('Whitelist IP access is enabled in the configuration');
117
-				$list = get_config('white_list_ip_addresses', array());
118
-				if(! empty($list)){
119
-					//Can't use Loader::functions() at this time because teh "Loader" library is loader after the security prossessing
120
-					require_once CORE_FUNCTIONS_PATH . 'function_user_agent.php';
121
-					$ip = get_ip();
122
-					if((count($list) == 1 && $list[0] == '*') || in_array($ip, $list)){
123
-						$logger->info('IP address ' . $ip . ' allowed using the wildcard "*" or the full IP');
124
-						//wildcard to access all ip address
125
-						return;
126
-					}
127
-					else{
128
-						// go through all whitelisted ips
129
-						foreach ($list as $ipaddr) {
130
-							// find the wild card * in whitelisted ip (f.e. find position in "127.0.*" or "127*")
131
-							$wildcardPosition = strpos($ipaddr, '*');
132
-							if ($wildcardPosition === false) {
133
-								// no wild card in whitelisted ip --continue searching
134
-								continue;
135
-							}
136
-							// cut ip at the position where we got the wild card on the whitelisted ip
137
-							// and add the wold card to get the same pattern
138
-							if (substr($ip, 0, $wildcardPosition) . '*' === $ipaddr) {
139
-								// f.e. we got
140
-								//  ip "127.0.0.1"
141
-								//  whitelisted ip "127.0.*"
142
-								// then we compared "127.0.*" with "127.0.*"
143
-								// return success
144
-								$logger->info('IP address ' . $ip . ' allowed using the wildcard like "x.x.x.*"');
145
-								return;
146
-							}
147
-						}
148
-						$logger->warning('IP address ' . $ip . ' is not allowed to access to this application');
149
-						show_error('Access to this application is not allowed');
150
-					}
151
-				}
152
-			}
153
-			else{
154
-				$logger->info('Whitelist IP access is not enabled in the configuration, ignore checking');
155
-			}
156
-		 }
157
-	}
107
+        /**
108
+         * This method is used to check the whitelist IP address access
109
+         */
110
+            public static function checkWhiteListIpAccess(){
111
+            $logger = self::getLogger();
112
+            $logger->debug('Validation of the IP address access ...');
113
+            $logger->debug('Check if whitelist IP access is enabled in the configuration ...');
114
+            $isEnable = get_config('white_list_ip_enable', false);
115
+            if($isEnable){
116
+                $logger->info('Whitelist IP access is enabled in the configuration');
117
+                $list = get_config('white_list_ip_addresses', array());
118
+                if(! empty($list)){
119
+                    //Can't use Loader::functions() at this time because teh "Loader" library is loader after the security prossessing
120
+                    require_once CORE_FUNCTIONS_PATH . 'function_user_agent.php';
121
+                    $ip = get_ip();
122
+                    if((count($list) == 1 && $list[0] == '*') || in_array($ip, $list)){
123
+                        $logger->info('IP address ' . $ip . ' allowed using the wildcard "*" or the full IP');
124
+                        //wildcard to access all ip address
125
+                        return;
126
+                    }
127
+                    else{
128
+                        // go through all whitelisted ips
129
+                        foreach ($list as $ipaddr) {
130
+                            // find the wild card * in whitelisted ip (f.e. find position in "127.0.*" or "127*")
131
+                            $wildcardPosition = strpos($ipaddr, '*');
132
+                            if ($wildcardPosition === false) {
133
+                                // no wild card in whitelisted ip --continue searching
134
+                                continue;
135
+                            }
136
+                            // cut ip at the position where we got the wild card on the whitelisted ip
137
+                            // and add the wold card to get the same pattern
138
+                            if (substr($ip, 0, $wildcardPosition) . '*' === $ipaddr) {
139
+                                // f.e. we got
140
+                                //  ip "127.0.0.1"
141
+                                //  whitelisted ip "127.0.*"
142
+                                // then we compared "127.0.*" with "127.0.*"
143
+                                // return success
144
+                                $logger->info('IP address ' . $ip . ' allowed using the wildcard like "x.x.x.*"');
145
+                                return;
146
+                            }
147
+                        }
148
+                        $logger->warning('IP address ' . $ip . ' is not allowed to access to this application');
149
+                        show_error('Access to this application is not allowed');
150
+                    }
151
+                }
152
+            }
153
+            else{
154
+                $logger->info('Whitelist IP access is not enabled in the configuration, ignore checking');
155
+            }
156
+            }
157
+    }
Please login to merge, or discard this patch.
Spacing   +20 added lines, -20 removed lines patch added patch discarded remove patch
@@ -24,7 +24,7 @@  discard block
 block discarded – undo
24 24
 	 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
25 25
 	*/
26 26
 
27
-	class Security{
27
+	class Security {
28 28
 		
29 29
 		/**
30 30
 		 * The logger instance
@@ -36,9 +36,9 @@  discard block
 block discarded – undo
36 36
 		 * Get the logger singleton instance
37 37
 		 * @return Log the logger instance
38 38
 		 */
39
-		private static function getLogger(){
40
-			if(self::$logger == null){
41
-				self::$logger[0] =& class_loader('Log', 'classes');
39
+		private static function getLogger() {
40
+			if (self::$logger == null) {
41
+				self::$logger[0] = & class_loader('Log', 'classes');
42 42
 				self::$logger[0]->setLogger('Library::Security');
43 43
 			}
44 44
 			return self::$logger[0];
@@ -49,7 +49,7 @@  discard block
 block discarded – undo
49 49
 		 * This method is used to generate the CSRF token
50 50
 		 * @return string the generated CSRF token
51 51
 		 */
52
-		public static function generateCSRF(){
52
+		public static function generateCSRF() {
53 53
 			$logger = self::getLogger();
54 54
 			$logger->debug('Generation of CSRF ...');
55 55
 			
@@ -57,14 +57,14 @@  discard block
 block discarded – undo
57 57
 			$expire = get_config('csrf_expire', 60);
58 58
 			$keyExpire = 'csrf_expire';
59 59
 			$currentTime = time();
60
-			if(Session::exists($key) && Session::exists($keyExpire) && Session::get($keyExpire) > $currentTime){
60
+			if (Session::exists($key) && Session::exists($keyExpire) && Session::get($keyExpire) > $currentTime) {
61 61
 				$logger->info('The CSRF token not yet expire just return it');
62 62
 				return Session::get($key);
63 63
 			}
64
-			else{
64
+			else {
65 65
 				$newTime = $currentTime + $expire;
66 66
 				$token = sha1(uniqid()) . sha1(uniqid());
67
-				$logger->info('The CSRF informations are listed below: key [' .$key. '], key expire [' .$keyExpire. '], expire time [' .$expire. '], token [' .$token. ']');
67
+				$logger->info('The CSRF informations are listed below: key [' . $key . '], key expire [' . $keyExpire . '], expire time [' . $expire . '], token [' . $token . ']');
68 68
 				Session::set($keyExpire, $newTime);
69 69
 				Session::set($key, $token);
70 70
 				return Session::get($key);
@@ -75,7 +75,7 @@  discard block
 block discarded – undo
75 75
 		 * This method is used to check the CSRF if is valid, not yet expire, etc.
76 76
 		 * @return boolean true if valid, false if not valid
77 77
 		 */
78
-		public static function validateCSRF(){
78
+		public static function validateCSRF() {
79 79
 			$logger = self::getLogger();
80 80
 			$logger->debug('Validation of CSRF ...');
81 81
 				
@@ -83,8 +83,8 @@  discard block
 block discarded – undo
83 83
 			$expire = get_config('csrf_expire', 60);
84 84
 			$keyExpire = 'csrf_expire';
85 85
 			$currentTime = time();
86
-			$logger->info('The CSRF informations are listed below: key [' .$key. '], key expire [' .$keyExpire. '], expire time [' .$expire. ']');
87
-			if(! Session::exists($key) || Session::get($keyExpire) <= $currentTime){
86
+			$logger->info('The CSRF informations are listed below: key [' . $key . '], key expire [' . $keyExpire . '], expire time [' . $expire . ']');
87
+			if (!Session::exists($key) || Session::get($keyExpire) <= $currentTime) {
88 88
 				$logger->warning('The CSRF session data is not valide');
89 89
 				return false;
90 90
 			}
@@ -93,11 +93,11 @@  discard block
 block discarded – undo
93 93
 			//super instance
94 94
 			$obj = & get_instance();
95 95
 			$token = $obj->request->query($key);
96
-			if(! $token || $token !== Session::get($key) || Session::get($keyExpire) <= $currentTime){
97
-				$logger->warning('The CSRF data [' .$token. '] is not valide may be attacker do his job');
96
+			if (!$token || $token !== Session::get($key) || Session::get($keyExpire) <= $currentTime) {
97
+				$logger->warning('The CSRF data [' . $token . '] is not valide may be attacker do his job');
98 98
 				return false;
99 99
 			}
100
-			$logger->info('The CSRF data [' .$token. '] is valide the form data is safe continue');
100
+			$logger->info('The CSRF data [' . $token . '] is valide the form data is safe continue');
101 101
 			//remove the token from session
102 102
 			Session::clear($key);
103 103
 			Session::clear($keyExpire);
@@ -107,24 +107,24 @@  discard block
 block discarded – undo
107 107
 		/**
108 108
 		 * This method is used to check the whitelist IP address access
109 109
 		 */
110
-		 public static function checkWhiteListIpAccess(){
110
+		 public static function checkWhiteListIpAccess() {
111 111
 			$logger = self::getLogger();
112 112
 			$logger->debug('Validation of the IP address access ...');
113 113
 			$logger->debug('Check if whitelist IP access is enabled in the configuration ...');
114 114
 			$isEnable = get_config('white_list_ip_enable', false);
115
-			if($isEnable){
115
+			if ($isEnable) {
116 116
 				$logger->info('Whitelist IP access is enabled in the configuration');
117 117
 				$list = get_config('white_list_ip_addresses', array());
118
-				if(! empty($list)){
118
+				if (!empty($list)) {
119 119
 					//Can't use Loader::functions() at this time because teh "Loader" library is loader after the security prossessing
120 120
 					require_once CORE_FUNCTIONS_PATH . 'function_user_agent.php';
121 121
 					$ip = get_ip();
122
-					if((count($list) == 1 && $list[0] == '*') || in_array($ip, $list)){
122
+					if ((count($list) == 1 && $list[0] == '*') || in_array($ip, $list)) {
123 123
 						$logger->info('IP address ' . $ip . ' allowed using the wildcard "*" or the full IP');
124 124
 						//wildcard to access all ip address
125 125
 						return;
126 126
 					}
127
-					else{
127
+					else {
128 128
 						// go through all whitelisted ips
129 129
 						foreach ($list as $ipaddr) {
130 130
 							// find the wild card * in whitelisted ip (f.e. find position in "127.0.*" or "127*")
@@ -150,7 +150,7 @@  discard block
 block discarded – undo
150 150
 					}
151 151
 				}
152 152
 			}
153
-			else{
153
+			else {
154 154
 				$logger->info('Whitelist IP access is not enabled in the configuration, ignore checking');
155 155
 			}
156 156
 		 }
Please login to merge, or discard this patch.
Braces   +3 added lines, -6 removed lines patch added patch discarded remove patch
@@ -60,8 +60,7 @@  discard block
 block discarded – undo
60 60
 			if(Session::exists($key) && Session::exists($keyExpire) && Session::get($keyExpire) > $currentTime){
61 61
 				$logger->info('The CSRF token not yet expire just return it');
62 62
 				return Session::get($key);
63
-			}
64
-			else{
63
+			} else{
65 64
 				$newTime = $currentTime + $expire;
66 65
 				$token = sha1(uniqid()) . sha1(uniqid());
67 66
 				$logger->info('The CSRF informations are listed below: key [' .$key. '], key expire [' .$keyExpire. '], expire time [' .$expire. '], token [' .$token. ']');
@@ -123,8 +122,7 @@  discard block
 block discarded – undo
123 122
 						$logger->info('IP address ' . $ip . ' allowed using the wildcard "*" or the full IP');
124 123
 						//wildcard to access all ip address
125 124
 						return;
126
-					}
127
-					else{
125
+					} else{
128 126
 						// go through all whitelisted ips
129 127
 						foreach ($list as $ipaddr) {
130 128
 							// find the wild card * in whitelisted ip (f.e. find position in "127.0.*" or "127*")
@@ -149,8 +147,7 @@  discard block
 block discarded – undo
149 147
 						show_error('Access to this application is not allowed');
150 148
 					}
151 149
 				}
152
-			}
153
-			else{
150
+			} else{
154 151
 				$logger->info('Whitelist IP access is not enabled in the configuration, ignore checking');
155 152
 			}
156 153
 		 }
Please login to merge, or discard this patch.
core/functions/function_string.php 2 patches
Indentation   +68 added lines, -68 removed lines patch added patch discarded remove patch
@@ -1,71 +1,71 @@
 block discarded – undo
1 1
 <?php
2
-	defined('ROOT_PATH') || exit('Access denied');
3
-	/**
4
-	 * TNH Framework
5
-	 *
6
-	 * A simple PHP framework using HMVC architecture
7
-	 *
8
-	 * This content is released under the GNU GPL License (GPL)
9
-	 *
10
-	 * Copyright (C) 2017 Tony NGUEREZA
11
-	 *
12
-	 * This program is free software; you can redistribute it and/or
13
-	 * modify it under the terms of the GNU General Public License
14
-	 * as published by the Free Software Foundation; either version 3
15
-	 * of the License, or (at your option) any later version.
16
-	 *
17
-	 * This program is distributed in the hope that it will be useful,
18
-	 * but WITHOUT ANY WARRANTY; without even the implied warranty of
19
-	 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
20
-	 * GNU General Public License for more details.
21
-	 *
22
-	 * You should have received a copy of the GNU General Public License
23
-	 * along with this program; if not, write to the Free Software
24
-	 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
25
-	*/
2
+    defined('ROOT_PATH') || exit('Access denied');
3
+    /**
4
+     * TNH Framework
5
+     *
6
+     * A simple PHP framework using HMVC architecture
7
+     *
8
+     * This content is released under the GNU GPL License (GPL)
9
+     *
10
+     * Copyright (C) 2017 Tony NGUEREZA
11
+     *
12
+     * This program is free software; you can redistribute it and/or
13
+     * modify it under the terms of the GNU General Public License
14
+     * as published by the Free Software Foundation; either version 3
15
+     * of the License, or (at your option) any later version.
16
+     *
17
+     * This program is distributed in the hope that it will be useful,
18
+     * but WITHOUT ANY WARRANTY; without even the implied warranty of
19
+     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
20
+     * GNU General Public License for more details.
21
+     *
22
+     * You should have received a copy of the GNU General Public License
23
+     * along with this program; if not, write to the Free Software
24
+     * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
25
+     */
26 26
 
27
-	/**
28
-	 *  @file function_string.php
29
-	 *
30
-	 *  This file contains the definition of the functions relating to the processing of strings characters.
31
-	 *
32
-	 *  @package	core
33
-	 *  @author	Tony NGUEREZA
34
-	 *  @copyright	Copyright (c) 2017
35
-	 *  @license	https://opensource.org/licenses/gpl-3.0.html GNU GPL License (GPL)
36
-	 *  @link	http://www.iacademy.cf
37
-	 *  @version 1.0.0
38
-	 *  @since 1.0.0
39
-	 *  @filesource
40
-	 */
27
+    /**
28
+     *  @file function_string.php
29
+     *
30
+     *  This file contains the definition of the functions relating to the processing of strings characters.
31
+     *
32
+     *  @package	core
33
+     *  @author	Tony NGUEREZA
34
+     *  @copyright	Copyright (c) 2017
35
+     *  @license	https://opensource.org/licenses/gpl-3.0.html GNU GPL License (GPL)
36
+     *  @link	http://www.iacademy.cf
37
+     *  @version 1.0.0
38
+     *  @since 1.0.0
39
+     *  @filesource
40
+     */
41 41
 
42
-	if(! function_exists('get_random_string')){
43
-		/**
44
-		 * Generate a random string
45
-		 * @param  string $type the type of generation. It can take the values: "alpha" for alphabetic characters,
46
-		 * "alnum" for alpha-numeric characters and "num" for numbers.
47
-		 * By default it is "alnum".
48
-		 * @param  integer $length the length of the string to generate. By default it is 10.
49
-		 * @param  boolean $lower if we return the generated string in lowercase (true). By default it's false.
50
-		 * @return string the generated string.
51
-		 */
52
-		function get_random_string($type = 'alnum', $length = 10, $lower = false){
53
-			$chars = array(
54
-							'alpha' => 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ',
55
-							'alnum' => 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890',
56
-							'num' => '1234567890'
57
-						);
58
-			$str = null;
59
-			if(isset($chars[$type])){
60
-				$str = $chars[$type];
61
-			}
62
-			$random = null;
63
-			for($i = 0; $i < $length; $i++){
64
-				$random .= $str[mt_rand() % strlen($str)];
65
-			}
66
-			if($lower){
67
-				$random = strtolower($random);
68
-			}
69
-			return $random;
70
-		}
71
-	}
42
+    if(! function_exists('get_random_string')){
43
+        /**
44
+         * Generate a random string
45
+         * @param  string $type the type of generation. It can take the values: "alpha" for alphabetic characters,
46
+         * "alnum" for alpha-numeric characters and "num" for numbers.
47
+         * By default it is "alnum".
48
+         * @param  integer $length the length of the string to generate. By default it is 10.
49
+         * @param  boolean $lower if we return the generated string in lowercase (true). By default it's false.
50
+         * @return string the generated string.
51
+         */
52
+        function get_random_string($type = 'alnum', $length = 10, $lower = false){
53
+            $chars = array(
54
+                            'alpha' => 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ',
55
+                            'alnum' => 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890',
56
+                            'num' => '1234567890'
57
+                        );
58
+            $str = null;
59
+            if(isset($chars[$type])){
60
+                $str = $chars[$type];
61
+            }
62
+            $random = null;
63
+            for($i = 0; $i < $length; $i++){
64
+                $random .= $str[mt_rand() % strlen($str)];
65
+            }
66
+            if($lower){
67
+                $random = strtolower($random);
68
+            }
69
+            return $random;
70
+        }
71
+    }
Please login to merge, or discard this patch.
Spacing   +5 added lines, -5 removed lines patch added patch discarded remove patch
@@ -39,7 +39,7 @@  discard block
 block discarded – undo
39 39
 	 *  @filesource
40 40
 	 */
41 41
 
42
-	if(! function_exists('get_random_string')){
42
+	if (!function_exists('get_random_string')) {
43 43
 		/**
44 44
 		 * Generate a random string
45 45
 		 * @param  string $type the type of generation. It can take the values: "alpha" for alphabetic characters,
@@ -49,21 +49,21 @@  discard block
 block discarded – undo
49 49
 		 * @param  boolean $lower if we return the generated string in lowercase (true). By default it's false.
50 50
 		 * @return string the generated string.
51 51
 		 */
52
-		function get_random_string($type = 'alnum', $length = 10, $lower = false){
52
+		function get_random_string($type = 'alnum', $length = 10, $lower = false) {
53 53
 			$chars = array(
54 54
 							'alpha' => 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ',
55 55
 							'alnum' => 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890',
56 56
 							'num' => '1234567890'
57 57
 						);
58 58
 			$str = null;
59
-			if(isset($chars[$type])){
59
+			if (isset($chars[$type])) {
60 60
 				$str = $chars[$type];
61 61
 			}
62 62
 			$random = null;
63
-			for($i = 0; $i < $length; $i++){
63
+			for ($i = 0; $i < $length; $i++) {
64 64
 				$random .= $str[mt_rand() % strlen($str)];
65 65
 			}
66
-			if($lower){
66
+			if ($lower) {
67 67
 				$random = strtolower($random);
68 68
 			}
69 69
 			return $random;
Please login to merge, or discard this patch.
core/classes/Loader.php 3 patches
Braces   +15 added lines, -30 removed lines patch added patch discarded remove patch
@@ -107,8 +107,7 @@  discard block
 block discarded – undo
107 107
 			if ($moduleModelFilePath){
108 108
 				$logger->info('Found model [' . $class . '] from module [' .$module. '], the file path is [' .$moduleModelFilePath. '] we will used it');
109 109
 				$classFilePath = $moduleModelFilePath;
110
-			}
111
-			else{
110
+			} else{
112 111
 				$logger->info('Cannot find model [' . $class . '] from modules using the default location');
113 112
 			}
114 113
 			$logger->info('The model file path to be loaded is [' . $classFilePath . ']');
@@ -120,12 +119,10 @@  discard block
 block discarded – undo
120 119
 					$obj->{$instance} = $c;
121 120
 					static::$loaded[$instance] = $class;
122 121
 					$logger->info('Model [' . $class . '] --> ' . $classFilePath . ' loaded successfully.');
123
-				}
124
-				else{
122
+				} else{
125 123
 					show_error('The file '.$classFilePath.' exists but does not contain the class ['. $class . ']');
126 124
 				}
127
-			}
128
-			else{
125
+			} else{
129 126
 				show_error('Unable to find the model [' . $class . ']');
130 127
 			}
131 128
 		}
@@ -168,8 +165,7 @@  discard block
 block discarded – undo
168 165
 				$libraryFilePath = CORE_LIBRARY_PATH . $file;
169 166
 				$class = ucfirst($class);
170 167
 				$logger->info('This library is a system library');
171
-			}
172
-			else{
168
+			} else{
173 169
 				$logger->info('This library is not a system library');	
174 170
 				//first check if this library is in the module
175 171
 				$libraryFilePath = self::getLibraryPathUsingModuleInfo($class);
@@ -214,8 +210,7 @@  discard block
 block discarded – undo
214 210
 			if ($moduleFunctionPath){
215 211
 				$logger->info('Found helper [' . $function . '] from module [' .$module. '], the file path is [' .$moduleFunctionPath. '] we will used it');
216 212
 				$functionFilePath = $moduleFunctionPath;
217
-			}
218
-			else{
213
+			} else{
219 214
 				$logger->info('Cannot find helper [' . $function . '] from modules using the default location');
220 215
 			}
221 216
 			if (! $functionFilePath){
@@ -234,8 +229,7 @@  discard block
 block discarded – undo
234 229
 				require_once $functionFilePath;
235 230
 				static::$loaded['function_' . $function] = $functionFilePath;
236 231
 				$logger->info('Helper [' . $function . '] --> ' . $functionFilePath . ' loaded successfully.');
237
-			}
238
-			else{
232
+			} else{
239 233
 				show_error('Unable to find helper file [' . $file . ']');
240 234
 			}
241 235
 		}
@@ -268,8 +262,7 @@  discard block
 block discarded – undo
268 262
 			if ($moduleConfigPath){
269 263
 				$logger->info('Found config [' . $filename . '] from module [' .$module. '], the file path is [' .$moduleConfigPath. '] we will used it');
270 264
 				$configFilePath = $moduleConfigPath;
271
-			}
272
-			else{
265
+			} else{
273 266
 				$logger->info('Cannot find config [' . $filename . '] from modules using the default location');
274 267
 			}
275 268
 			$logger->info('The config file path to be loaded is [' . $configFilePath . ']');
@@ -283,8 +276,7 @@  discard block
 block discarded – undo
283 276
 					$logger->info('The custom application configuration loaded are listed below: ' . stringfy_vars($config));
284 277
 					unset($config);
285 278
 				}
286
-			}
287
-			else{
279
+			} else{
288 280
 				show_error('Unable to find config file ['. $configFilePath . ']');
289 281
 			}
290 282
 		}
@@ -323,8 +315,7 @@  discard block
 block discarded – undo
323 315
 			if ($moduleLanguagePath){
324 316
 				$logger->info('Found language [' . $language . '] from module [' .$module. '], the file path is [' .$moduleLanguagePath. '] we will used it');
325 317
 				$languageFilePath = $moduleLanguagePath;
326
-			}
327
-			else{
318
+			} else{
328 319
 				$logger->info('Cannot find language [' . $language . '] from modules using the default location');
329 320
 			}
330 321
 			if (! $languageFilePath){
@@ -377,8 +368,7 @@  discard block
 block discarded – undo
377 368
 					$module = $path[0];
378 369
 					$class = ucfirst($path[1]);
379 370
 				}
380
-			}
381
-			else{
371
+			} else{
382 372
 				$class = ucfirst($class);
383 373
 			}
384 374
 			if (! $module && !empty($obj->moduleName)){
@@ -499,8 +489,7 @@  discard block
 block discarded – undo
499 489
 				if (isset($path[1])){
500 490
 					$instance = strtolower($path[1]);
501 491
 				}
502
-			}
503
-			else{
492
+			} else{
504 493
 				$instance = strtolower($class);
505 494
 			}
506 495
 			return $instance;
@@ -522,8 +511,7 @@  discard block
 block discarded – undo
522 511
 			if ($moduleLibraryPath){
523 512
 				$logger->info('Found library [' . $class . '] from module [' .$module. '], the file path is [' .$moduleLibraryPath. '] we will used it');
524 513
 				$libraryFilePath = $moduleLibraryPath;
525
-			}
526
-			else{
514
+			} else{
527 515
 				$logger->info('Cannot find library [' . $class . '] from modules using the default location');
528 516
 			}
529 517
 			return $libraryFilePath;
@@ -547,12 +535,10 @@  discard block
 block discarded – undo
547 535
 					$obj->{$instance} = $c;
548 536
 					static::$loaded[$instance] = $class;
549 537
 					$logger->info('Library [' . $class . '] --> ' . $libraryFilePath . ' loaded successfully.');
550
-				}
551
-				else{
538
+				} else{
552 539
 					show_error('The file '.$libraryFilePath.' exists but does not contain the class '.$class);
553 540
 				}
554
-			}
555
-			else{
541
+			} else{
556 542
 				show_error('Unable to find library class [' . $class . ']');
557 543
 			}
558 544
 		}
@@ -578,8 +564,7 @@  discard block
 block discarded – undo
578 564
 				}
579 565
 				static::$loaded['lang_' . $language] = $languageFilePath;
580 566
 				$logger->info('Language [' . $language . '] --> ' . $languageFilePath . ' loaded successfully.');
581
-			}
582
-			else{
567
+			} else{
583 568
 				show_error('Unable to find language [' . $language . ']');
584 569
 			}
585 570
 		}
Please login to merge, or discard this patch.
Indentation   +622 added lines, -622 removed lines patch added patch discarded remove patch
@@ -1,657 +1,657 @@
 block discarded – undo
1 1
 <?php
2
-	defined('ROOT_PATH') || exit('Access denied');
3
-	/**
4
-	 * TNH Framework
5
-	 *
6
-	 * A simple PHP framework using HMVC architecture
7
-	 *
8
-	 * This content is released under the GNU GPL License (GPL)
9
-	 *
10
-	 * Copyright (C) 2017 Tony NGUEREZA
11
-	 *
12
-	 * This program is free software; you can redistribute it and/or
13
-	 * modify it under the terms of the GNU General Public License
14
-	 * as published by the Free Software Foundation; either version 3
15
-	 * of the License, or (at your option) any later version.
16
-	 *
17
-	 * This program is distributed in the hope that it will be useful,
18
-	 * but WITHOUT ANY WARRANTY; without even the implied warranty of
19
-	 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
20
-	 * GNU General Public License for more details.
21
-	 *
22
-	 * You should have received a copy of the GNU General Public License
23
-	 * along with this program; if not, write to the Free Software
24
-	 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
25
-	*/
26
-	class Loader{
2
+    defined('ROOT_PATH') || exit('Access denied');
3
+    /**
4
+     * TNH Framework
5
+     *
6
+     * A simple PHP framework using HMVC architecture
7
+     *
8
+     * This content is released under the GNU GPL License (GPL)
9
+     *
10
+     * Copyright (C) 2017 Tony NGUEREZA
11
+     *
12
+     * This program is free software; you can redistribute it and/or
13
+     * modify it under the terms of the GNU General Public License
14
+     * as published by the Free Software Foundation; either version 3
15
+     * of the License, or (at your option) any later version.
16
+     *
17
+     * This program is distributed in the hope that it will be useful,
18
+     * but WITHOUT ANY WARRANTY; without even the implied warranty of
19
+     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
20
+     * GNU General Public License for more details.
21
+     *
22
+     * You should have received a copy of the GNU General Public License
23
+     * along with this program; if not, write to the Free Software
24
+     * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
25
+     */
26
+    class Loader{
27 27
 		
28
-		/**
29
-		 * List of loaded resources
30
-		 * @var array
31
-		 */
32
-		public static $loaded = array();
28
+        /**
29
+         * List of loaded resources
30
+         * @var array
31
+         */
32
+        public static $loaded = array();
33 33
 		
34
-		/**
35
-		 * The logger instance
36
-		 * @var object
37
-		 */
38
-		private static $logger;
34
+        /**
35
+         * The logger instance
36
+         * @var object
37
+         */
38
+        private static $logger;
39 39
 
40 40
 
41
-		public function __construct(){
42
-			//add the resources already loaded during application bootstrap
43
-			//in the list to prevent duplicate or loading the resources again.
44
-			static::$loaded = class_loaded();
41
+        public function __construct(){
42
+            //add the resources already loaded during application bootstrap
43
+            //in the list to prevent duplicate or loading the resources again.
44
+            static::$loaded = class_loaded();
45 45
 			
46
-			//Load resources from autoload configuration
47
-			$this->loadResourcesFromAutoloadConfig();
48
-		}
46
+            //Load resources from autoload configuration
47
+            $this->loadResourcesFromAutoloadConfig();
48
+        }
49 49
 
50
-		/**
51
-		 * The signleton of the logger
52
-		 * @return object the Log instance
53
-		 */
54
-		public static function getLogger(){
55
-			if(self::$logger == null){
56
-				$logger = array();
57
-				$logger[0] =& class_loader('Log', 'classes');
58
-				$logger[0]->setLogger('Library::Loader');
59
-				self::$logger = $logger[0];
60
-			}
61
-			return self::$logger;			
62
-		}
50
+        /**
51
+         * The signleton of the logger
52
+         * @return object the Log instance
53
+         */
54
+        public static function getLogger(){
55
+            if(self::$logger == null){
56
+                $logger = array();
57
+                $logger[0] =& class_loader('Log', 'classes');
58
+                $logger[0]->setLogger('Library::Loader');
59
+                self::$logger = $logger[0];
60
+            }
61
+            return self::$logger;			
62
+        }
63 63
 
64
-		/**
65
-		 * Set the log instance for future use
66
-		 * @param object $logger the log object
67
-		 * @return object the log instance
68
-		 */
69
-		public static function setLogger($logger){
70
-			self::$logger = $logger;
71
-			return self::$logger;
72
-		}
64
+        /**
65
+         * Set the log instance for future use
66
+         * @param object $logger the log object
67
+         * @return object the log instance
68
+         */
69
+        public static function setLogger($logger){
70
+            self::$logger = $logger;
71
+            return self::$logger;
72
+        }
73 73
 
74 74
 		
75
-		/**
76
-		 * Load the model class
77
-		 *
78
-		 * @param  string $class    the class name to be loaded
79
-		 * @param  string $instance the name of the instance to use in super object
80
-		 *
81
-		 * @return void
82
-		 */
83
-		public static function model($class, $instance = null){
84
-			$logger = static::getLogger();
85
-			$class = str_ireplace('.php', '', $class);
86
-			$class = trim($class, '/\\');
87
-			$file = ucfirst($class).'.php';
88
-			$logger->debug('Loading model [' . $class . '] ...');
89
-			//************
90
-			if (! $instance){
91
-				$instance = self::getModelLibraryInstanceName($class);
92
-			}
93
-			//****************
94
-			if (isset(static::$loaded[$instance])){
95
-				$logger->info('Model [' . $class . '] already loaded no need to load it again, cost in performance');
96
-				return;
97
-			}
98
-			$classFilePath = APPS_MODEL_PATH . $file;
99
-			//first check if this model is in the module
100
-			$logger->debug('Checking model [' . $class . '] from module list ...');
101
-			//check if the request class contains module name
102
-			$moduleInfo = self::getModuleInfoForModelLibrary($class);
103
-			$module = $moduleInfo['module'];
104
-			$class  = $moduleInfo['class'];
75
+        /**
76
+         * Load the model class
77
+         *
78
+         * @param  string $class    the class name to be loaded
79
+         * @param  string $instance the name of the instance to use in super object
80
+         *
81
+         * @return void
82
+         */
83
+        public static function model($class, $instance = null){
84
+            $logger = static::getLogger();
85
+            $class = str_ireplace('.php', '', $class);
86
+            $class = trim($class, '/\\');
87
+            $file = ucfirst($class).'.php';
88
+            $logger->debug('Loading model [' . $class . '] ...');
89
+            //************
90
+            if (! $instance){
91
+                $instance = self::getModelLibraryInstanceName($class);
92
+            }
93
+            //****************
94
+            if (isset(static::$loaded[$instance])){
95
+                $logger->info('Model [' . $class . '] already loaded no need to load it again, cost in performance');
96
+                return;
97
+            }
98
+            $classFilePath = APPS_MODEL_PATH . $file;
99
+            //first check if this model is in the module
100
+            $logger->debug('Checking model [' . $class . '] from module list ...');
101
+            //check if the request class contains module name
102
+            $moduleInfo = self::getModuleInfoForModelLibrary($class);
103
+            $module = $moduleInfo['module'];
104
+            $class  = $moduleInfo['class'];
105 105
 			
106
-			$moduleModelFilePath = Module::findModelFullPath($class, $module);
107
-			if ($moduleModelFilePath){
108
-				$logger->info('Found model [' . $class . '] from module [' .$module. '], the file path is [' .$moduleModelFilePath. '] we will used it');
109
-				$classFilePath = $moduleModelFilePath;
110
-			}
111
-			else{
112
-				$logger->info('Cannot find model [' . $class . '] from modules using the default location');
113
-			}
114
-			$logger->info('The model file path to be loaded is [' . $classFilePath . ']');
115
-			if (file_exists($classFilePath)){
116
-				require_once $classFilePath;
117
-				if (class_exists($class)){
118
-					$c = new $class();
119
-					$obj = & get_instance();
120
-					$obj->{$instance} = $c;
121
-					static::$loaded[$instance] = $class;
122
-					$logger->info('Model [' . $class . '] --> ' . $classFilePath . ' loaded successfully.');
123
-				}
124
-				else{
125
-					show_error('The file '.$classFilePath.' exists but does not contain the class ['. $class . ']');
126
-				}
127
-			}
128
-			else{
129
-				show_error('Unable to find the model [' . $class . ']');
130
-			}
131
-		}
106
+            $moduleModelFilePath = Module::findModelFullPath($class, $module);
107
+            if ($moduleModelFilePath){
108
+                $logger->info('Found model [' . $class . '] from module [' .$module. '], the file path is [' .$moduleModelFilePath. '] we will used it');
109
+                $classFilePath = $moduleModelFilePath;
110
+            }
111
+            else{
112
+                $logger->info('Cannot find model [' . $class . '] from modules using the default location');
113
+            }
114
+            $logger->info('The model file path to be loaded is [' . $classFilePath . ']');
115
+            if (file_exists($classFilePath)){
116
+                require_once $classFilePath;
117
+                if (class_exists($class)){
118
+                    $c = new $class();
119
+                    $obj = & get_instance();
120
+                    $obj->{$instance} = $c;
121
+                    static::$loaded[$instance] = $class;
122
+                    $logger->info('Model [' . $class . '] --> ' . $classFilePath . ' loaded successfully.');
123
+                }
124
+                else{
125
+                    show_error('The file '.$classFilePath.' exists but does not contain the class ['. $class . ']');
126
+                }
127
+            }
128
+            else{
129
+                show_error('Unable to find the model [' . $class . ']');
130
+            }
131
+        }
132 132
 
133 133
 		
134
-		/**
135
-		 * Load the library class
136
-		 *
137
-		 * @param  string $class    the library class name to be loaded
138
-		 * @param  string $instance the instance name to use in super object
139
-		 * @param mixed $params the arguments to pass to the constructor
140
-		 *
141
-		 * @return void
142
-		 */
143
-		public static function library($class, $instance = null, array $params = array()){
144
-			$logger = static::getLogger();
145
-			$class = str_ireplace('.php', '', $class);
146
-			$class = trim($class, '/\\');
147
-			$file = ucfirst($class) .'.php';
148
-			$logger->debug('Loading library [' . $class . '] ...');
149
-			if (! $instance){
150
-				$instance = self::getModelLibraryInstanceName($class);
151
-			}
152
-			if (isset(static::$loaded[$instance])){
153
-				$logger->info('Library [' . $class . '] already loaded no need to load it again, cost in performance');
154
-				return;
155
-			}
156
-			$obj = & get_instance();
157
-			//Check and load Database library
158
-			if (strtolower($class) == 'database'){
159
-				$logger->info('This is the Database library ...');
160
-				$obj->{$instance} = & class_loader('Database', 'classes/database', $params);
161
-				static::$loaded[$instance] = $class;
162
-				$logger->info('Library Database loaded successfully.');
163
-				return;
164
-			}
165
-			$libraryFilePath = null;
166
-			$logger->debug('Check if this is a system library ...');
167
-			if (file_exists(CORE_LIBRARY_PATH . $file)){
168
-				$libraryFilePath = CORE_LIBRARY_PATH . $file;
169
-				$class = ucfirst($class);
170
-				$logger->info('This library is a system library');
171
-			}
172
-			else{
173
-				$logger->info('This library is not a system library');	
174
-				//first check if this library is in the module
175
-				$libraryFilePath = self::getLibraryPathUsingModuleInfo($class);
176
-				//***************
177
-			}
178
-			if (! $libraryFilePath && file_exists(LIBRARY_PATH . $file)){
179
-				$libraryFilePath = LIBRARY_PATH . $file;
180
-			}
181
-			$logger->info('The library file path to be loaded is [' . $libraryFilePath . ']');
182
-			//*************************
183
-			self::loadLibrary($libraryFilePath, $class, $instance, $params);
184
-		}
134
+        /**
135
+         * Load the library class
136
+         *
137
+         * @param  string $class    the library class name to be loaded
138
+         * @param  string $instance the instance name to use in super object
139
+         * @param mixed $params the arguments to pass to the constructor
140
+         *
141
+         * @return void
142
+         */
143
+        public static function library($class, $instance = null, array $params = array()){
144
+            $logger = static::getLogger();
145
+            $class = str_ireplace('.php', '', $class);
146
+            $class = trim($class, '/\\');
147
+            $file = ucfirst($class) .'.php';
148
+            $logger->debug('Loading library [' . $class . '] ...');
149
+            if (! $instance){
150
+                $instance = self::getModelLibraryInstanceName($class);
151
+            }
152
+            if (isset(static::$loaded[$instance])){
153
+                $logger->info('Library [' . $class . '] already loaded no need to load it again, cost in performance');
154
+                return;
155
+            }
156
+            $obj = & get_instance();
157
+            //Check and load Database library
158
+            if (strtolower($class) == 'database'){
159
+                $logger->info('This is the Database library ...');
160
+                $obj->{$instance} = & class_loader('Database', 'classes/database', $params);
161
+                static::$loaded[$instance] = $class;
162
+                $logger->info('Library Database loaded successfully.');
163
+                return;
164
+            }
165
+            $libraryFilePath = null;
166
+            $logger->debug('Check if this is a system library ...');
167
+            if (file_exists(CORE_LIBRARY_PATH . $file)){
168
+                $libraryFilePath = CORE_LIBRARY_PATH . $file;
169
+                $class = ucfirst($class);
170
+                $logger->info('This library is a system library');
171
+            }
172
+            else{
173
+                $logger->info('This library is not a system library');	
174
+                //first check if this library is in the module
175
+                $libraryFilePath = self::getLibraryPathUsingModuleInfo($class);
176
+                //***************
177
+            }
178
+            if (! $libraryFilePath && file_exists(LIBRARY_PATH . $file)){
179
+                $libraryFilePath = LIBRARY_PATH . $file;
180
+            }
181
+            $logger->info('The library file path to be loaded is [' . $libraryFilePath . ']');
182
+            //*************************
183
+            self::loadLibrary($libraryFilePath, $class, $instance, $params);
184
+        }
185 185
 
186
-		/**
187
-		 * Load the helper
188
-		 *
189
-		 * @param  string $function the helper name to be loaded
190
-		 *
191
-		 * @return void
192
-		 */
193
-		public static function functions($function){
194
-			$logger = static::getLogger();
195
-			$function = str_ireplace('.php', '', $function);
196
-			$function = trim($function, '/\\');
197
-			$function = str_ireplace('function_', '', $function);
198
-			$file = 'function_'.$function.'.php';
199
-			$logger->debug('Loading helper [' . $function . '] ...');
200
-			if (isset(static::$loaded['function_' . $function])){
201
-				$logger->info('Helper [' . $function . '] already loaded no need to load it again, cost in performance');
202
-				return;
203
-			}
204
-			$functionFilePath = null;
205
-			//first check if this helper is in the module
206
-			$logger->debug('Checking helper [' . $function . '] from module list ...');
207
-			$moduleInfo = self::getModuleInfoForFunction($function);
208
-			$module    = $moduleInfo['module'];
209
-			$function  = $moduleInfo['function'];
210
-			if(! empty($moduleInfo['file'])){
211
-				$file = $moduleInfo['file'];
212
-			}
213
-			$moduleFunctionPath = Module::findFunctionFullPath($function, $module);
214
-			if ($moduleFunctionPath){
215
-				$logger->info('Found helper [' . $function . '] from module [' .$module. '], the file path is [' .$moduleFunctionPath. '] we will used it');
216
-				$functionFilePath = $moduleFunctionPath;
217
-			}
218
-			else{
219
-				$logger->info('Cannot find helper [' . $function . '] from modules using the default location');
220
-			}
221
-			if (! $functionFilePath){
222
-				$searchDir = array(FUNCTIONS_PATH, CORE_FUNCTIONS_PATH);
223
-				foreach($searchDir as $dir){
224
-					$filePath = $dir . $file;
225
-					if (file_exists($filePath)){
226
-						$functionFilePath = $filePath;
227
-						//is already found not to continue
228
-						break;
229
-					}
230
-				}
231
-			}
232
-			$logger->info('The helper file path to be loaded is [' . $functionFilePath . ']');
233
-			if ($functionFilePath){
234
-				require_once $functionFilePath;
235
-				static::$loaded['function_' . $function] = $functionFilePath;
236
-				$logger->info('Helper [' . $function . '] --> ' . $functionFilePath . ' loaded successfully.');
237
-			}
238
-			else{
239
-				show_error('Unable to find helper file [' . $file . ']');
240
-			}
241
-		}
186
+        /**
187
+         * Load the helper
188
+         *
189
+         * @param  string $function the helper name to be loaded
190
+         *
191
+         * @return void
192
+         */
193
+        public static function functions($function){
194
+            $logger = static::getLogger();
195
+            $function = str_ireplace('.php', '', $function);
196
+            $function = trim($function, '/\\');
197
+            $function = str_ireplace('function_', '', $function);
198
+            $file = 'function_'.$function.'.php';
199
+            $logger->debug('Loading helper [' . $function . '] ...');
200
+            if (isset(static::$loaded['function_' . $function])){
201
+                $logger->info('Helper [' . $function . '] already loaded no need to load it again, cost in performance');
202
+                return;
203
+            }
204
+            $functionFilePath = null;
205
+            //first check if this helper is in the module
206
+            $logger->debug('Checking helper [' . $function . '] from module list ...');
207
+            $moduleInfo = self::getModuleInfoForFunction($function);
208
+            $module    = $moduleInfo['module'];
209
+            $function  = $moduleInfo['function'];
210
+            if(! empty($moduleInfo['file'])){
211
+                $file = $moduleInfo['file'];
212
+            }
213
+            $moduleFunctionPath = Module::findFunctionFullPath($function, $module);
214
+            if ($moduleFunctionPath){
215
+                $logger->info('Found helper [' . $function . '] from module [' .$module. '], the file path is [' .$moduleFunctionPath. '] we will used it');
216
+                $functionFilePath = $moduleFunctionPath;
217
+            }
218
+            else{
219
+                $logger->info('Cannot find helper [' . $function . '] from modules using the default location');
220
+            }
221
+            if (! $functionFilePath){
222
+                $searchDir = array(FUNCTIONS_PATH, CORE_FUNCTIONS_PATH);
223
+                foreach($searchDir as $dir){
224
+                    $filePath = $dir . $file;
225
+                    if (file_exists($filePath)){
226
+                        $functionFilePath = $filePath;
227
+                        //is already found not to continue
228
+                        break;
229
+                    }
230
+                }
231
+            }
232
+            $logger->info('The helper file path to be loaded is [' . $functionFilePath . ']');
233
+            if ($functionFilePath){
234
+                require_once $functionFilePath;
235
+                static::$loaded['function_' . $function] = $functionFilePath;
236
+                $logger->info('Helper [' . $function . '] --> ' . $functionFilePath . ' loaded successfully.');
237
+            }
238
+            else{
239
+                show_error('Unable to find helper file [' . $file . ']');
240
+            }
241
+        }
242 242
 
243
-		/**
244
-		 * Load the configuration file
245
-		 *
246
-		 * @param  string $filename the configuration filename located at CONFIG_PATH or MODULE_PATH/config
247
-		 *
248
-		 * @return void
249
-		 */
250
-		public static function config($filename){
251
-			$logger = static::getLogger();
252
-			$filename = str_ireplace('.php', '', $filename);
253
-			$filename = trim($filename, '/\\');
254
-			$filename = str_ireplace('config_', '', $filename);
255
-			$file = 'config_'.$filename.'.php';
256
-			$logger->debug('Loading configuration [' . $filename . '] ...');
257
-			if (isset(static::$loaded['config_' . $filename])){
258
-				$logger->info('Configuration [' . $file . '] already loaded no need to load it again, cost in performance');
259
-				return;
260
-			}
261
-			$configFilePath = CONFIG_PATH . $file;
262
-			//first check if this config is in the module
263
-			$logger->debug('Checking config [' . $filename . '] from module list ...');
264
-			$moduleInfo = self::getModuleInfoForConfig($filename);
265
-			$module    = $moduleInfo['module'];
266
-			$filename  = $moduleInfo['filename'];
267
-			$moduleConfigPath = Module::findConfigFullPath($filename, $module);
268
-			if ($moduleConfigPath){
269
-				$logger->info('Found config [' . $filename . '] from module [' .$module. '], the file path is [' .$moduleConfigPath. '] we will used it');
270
-				$configFilePath = $moduleConfigPath;
271
-			}
272
-			else{
273
-				$logger->info('Cannot find config [' . $filename . '] from modules using the default location');
274
-			}
275
-			$logger->info('The config file path to be loaded is [' . $configFilePath . ']');
276
-			$config = array();
277
-			if (file_exists($configFilePath)){
278
-				require_once $configFilePath;
279
-				if (! empty($config) && is_array($config)){
280
-					Config::setAll($config);
281
-					static::$loaded['config_' . $filename] = $configFilePath;
282
-					$logger->info('Configuration [' . $configFilePath . '] loaded successfully.');
283
-					$logger->info('The custom application configuration loaded are listed below: ' . stringfy_vars($config));
284
-					unset($config);
285
-				}
286
-			}
287
-			else{
288
-				show_error('Unable to find config file ['. $configFilePath . ']');
289
-			}
290
-		}
243
+        /**
244
+         * Load the configuration file
245
+         *
246
+         * @param  string $filename the configuration filename located at CONFIG_PATH or MODULE_PATH/config
247
+         *
248
+         * @return void
249
+         */
250
+        public static function config($filename){
251
+            $logger = static::getLogger();
252
+            $filename = str_ireplace('.php', '', $filename);
253
+            $filename = trim($filename, '/\\');
254
+            $filename = str_ireplace('config_', '', $filename);
255
+            $file = 'config_'.$filename.'.php';
256
+            $logger->debug('Loading configuration [' . $filename . '] ...');
257
+            if (isset(static::$loaded['config_' . $filename])){
258
+                $logger->info('Configuration [' . $file . '] already loaded no need to load it again, cost in performance');
259
+                return;
260
+            }
261
+            $configFilePath = CONFIG_PATH . $file;
262
+            //first check if this config is in the module
263
+            $logger->debug('Checking config [' . $filename . '] from module list ...');
264
+            $moduleInfo = self::getModuleInfoForConfig($filename);
265
+            $module    = $moduleInfo['module'];
266
+            $filename  = $moduleInfo['filename'];
267
+            $moduleConfigPath = Module::findConfigFullPath($filename, $module);
268
+            if ($moduleConfigPath){
269
+                $logger->info('Found config [' . $filename . '] from module [' .$module. '], the file path is [' .$moduleConfigPath. '] we will used it');
270
+                $configFilePath = $moduleConfigPath;
271
+            }
272
+            else{
273
+                $logger->info('Cannot find config [' . $filename . '] from modules using the default location');
274
+            }
275
+            $logger->info('The config file path to be loaded is [' . $configFilePath . ']');
276
+            $config = array();
277
+            if (file_exists($configFilePath)){
278
+                require_once $configFilePath;
279
+                if (! empty($config) && is_array($config)){
280
+                    Config::setAll($config);
281
+                    static::$loaded['config_' . $filename] = $configFilePath;
282
+                    $logger->info('Configuration [' . $configFilePath . '] loaded successfully.');
283
+                    $logger->info('The custom application configuration loaded are listed below: ' . stringfy_vars($config));
284
+                    unset($config);
285
+                }
286
+            }
287
+            else{
288
+                show_error('Unable to find config file ['. $configFilePath . ']');
289
+            }
290
+        }
291 291
 
292 292
 
293
-		/**
294
-		 * Load the language
295
-		 *
296
-		 * @param  string $language the language name to be loaded
297
-		 *
298
-		 * @return void
299
-		 */
300
-		public static function lang($language){
301
-			$logger = static::getLogger();
302
-			$language = str_ireplace('.php', '', $language);
303
-			$language = trim($language, '/\\');
304
-			$language = str_ireplace('lang_', '', $language);
305
-			$file = 'lang_'.$language.'.php';
306
-			$logger->debug('Loading language [' . $language . '] ...');
307
-			if (isset(static::$loaded['lang_' . $language])){
308
-				$logger->info('Language [' . $language . '] already loaded no need to load it again, cost in performance');
309
-				return;
310
-			}
311
-			//get the current language
312
-			$appLang = self::getAppLang();
313
-			$languageFilePath = null;
314
-			//first check if this language is in the module
315
-			$logger->debug('Checking language [' . $language . '] from module list ...');
316
-			$moduleInfo = self::getModuleInfoForLanguage($language);
317
-			$module    = $moduleInfo['module'];
318
-			$language  = $moduleInfo['language'];
319
-			if(! empty($moduleInfo['file'])){
320
-				$file = $moduleInfo['file'];
321
-			}
322
-			$moduleLanguagePath = Module::findLanguageFullPath($language, $module, $appLang);
323
-			if ($moduleLanguagePath){
324
-				$logger->info('Found language [' . $language . '] from module [' .$module. '], the file path is [' .$moduleLanguagePath. '] we will used it');
325
-				$languageFilePath = $moduleLanguagePath;
326
-			}
327
-			else{
328
-				$logger->info('Cannot find language [' . $language . '] from modules using the default location');
329
-			}
330
-			if (! $languageFilePath){
331
-				$searchDir = array(APP_LANG_PATH, CORE_LANG_PATH);
332
-				foreach($searchDir as $dir){
333
-					$filePath = $dir . $appLang . DS . $file;
334
-					if (file_exists($filePath)){
335
-						$languageFilePath = $filePath;
336
-						//already found no need continue
337
-						break;
338
-					}
339
-				}
340
-			}
341
-			$logger->info('The language file path to be loaded is [' . $languageFilePath . ']');
342
-			self::loadLanguage($languageFilePath, $language);
343
-		}
293
+        /**
294
+         * Load the language
295
+         *
296
+         * @param  string $language the language name to be loaded
297
+         *
298
+         * @return void
299
+         */
300
+        public static function lang($language){
301
+            $logger = static::getLogger();
302
+            $language = str_ireplace('.php', '', $language);
303
+            $language = trim($language, '/\\');
304
+            $language = str_ireplace('lang_', '', $language);
305
+            $file = 'lang_'.$language.'.php';
306
+            $logger->debug('Loading language [' . $language . '] ...');
307
+            if (isset(static::$loaded['lang_' . $language])){
308
+                $logger->info('Language [' . $language . '] already loaded no need to load it again, cost in performance');
309
+                return;
310
+            }
311
+            //get the current language
312
+            $appLang = self::getAppLang();
313
+            $languageFilePath = null;
314
+            //first check if this language is in the module
315
+            $logger->debug('Checking language [' . $language . '] from module list ...');
316
+            $moduleInfo = self::getModuleInfoForLanguage($language);
317
+            $module    = $moduleInfo['module'];
318
+            $language  = $moduleInfo['language'];
319
+            if(! empty($moduleInfo['file'])){
320
+                $file = $moduleInfo['file'];
321
+            }
322
+            $moduleLanguagePath = Module::findLanguageFullPath($language, $module, $appLang);
323
+            if ($moduleLanguagePath){
324
+                $logger->info('Found language [' . $language . '] from module [' .$module. '], the file path is [' .$moduleLanguagePath. '] we will used it');
325
+                $languageFilePath = $moduleLanguagePath;
326
+            }
327
+            else{
328
+                $logger->info('Cannot find language [' . $language . '] from modules using the default location');
329
+            }
330
+            if (! $languageFilePath){
331
+                $searchDir = array(APP_LANG_PATH, CORE_LANG_PATH);
332
+                foreach($searchDir as $dir){
333
+                    $filePath = $dir . $appLang . DS . $file;
334
+                    if (file_exists($filePath)){
335
+                        $languageFilePath = $filePath;
336
+                        //already found no need continue
337
+                        break;
338
+                    }
339
+                }
340
+            }
341
+            $logger->info('The language file path to be loaded is [' . $languageFilePath . ']');
342
+            self::loadLanguage($languageFilePath, $language);
343
+        }
344 344
 
345
-		/**
346
-		 * Return the current app language by default will use the value from cookie 
347
-		 * if can not found will use the default value from configuration
348
-		 * @return string the app language like "en", "fr"
349
-		 */
350
-		protected static function getAppLang(){
351
-			//determine the current language
352
-			$appLang = get_config('default_language');
353
-			//if the language exists in the cookie use it
354
-			$cfgKey = get_config('language_cookie_name');
355
-			$objCookie = & class_loader('Cookie');
356
-			$cookieLang = $objCookie->get($cfgKey);
357
-			if ($cookieLang){
358
-				$appLang = $cookieLang;
359
-			}
360
-			return $appLang;
361
-		}
362
-		/**
363
-		 * Get the module information for the model and library to load
364
-		 * @param  string $class the full class name like moduleName/className, className,
365
-		 * @return array        the module information
366
-		 * array(
367
-		 * 	'module'=> 'module_name'
368
-		 * 	'class' => 'class_name'
369
-		 * )
370
-		 */
371
-		protected static function getModuleInfoForModelLibrary($class){
372
-			$module = null;
373
-			$obj = & get_instance();
374
-			if (strpos($class, '/') !== false){
375
-				$path = explode('/', $class);
376
-				if (isset($path[0]) && in_array($path[0], Module::getModuleList())){
377
-					$module = $path[0];
378
-					$class = ucfirst($path[1]);
379
-				}
380
-			}
381
-			else{
382
-				$class = ucfirst($class);
383
-			}
384
-			if (! $module && !empty($obj->moduleName)){
385
-				$module = $obj->moduleName;
386
-			}
387
-			return array(
388
-						'class' => $class,
389
-						'module' => $module
390
-					);
391
-		}
345
+        /**
346
+         * Return the current app language by default will use the value from cookie 
347
+         * if can not found will use the default value from configuration
348
+         * @return string the app language like "en", "fr"
349
+         */
350
+        protected static function getAppLang(){
351
+            //determine the current language
352
+            $appLang = get_config('default_language');
353
+            //if the language exists in the cookie use it
354
+            $cfgKey = get_config('language_cookie_name');
355
+            $objCookie = & class_loader('Cookie');
356
+            $cookieLang = $objCookie->get($cfgKey);
357
+            if ($cookieLang){
358
+                $appLang = $cookieLang;
359
+            }
360
+            return $appLang;
361
+        }
362
+        /**
363
+         * Get the module information for the model and library to load
364
+         * @param  string $class the full class name like moduleName/className, className,
365
+         * @return array        the module information
366
+         * array(
367
+         * 	'module'=> 'module_name'
368
+         * 	'class' => 'class_name'
369
+         * )
370
+         */
371
+        protected static function getModuleInfoForModelLibrary($class){
372
+            $module = null;
373
+            $obj = & get_instance();
374
+            if (strpos($class, '/') !== false){
375
+                $path = explode('/', $class);
376
+                if (isset($path[0]) && in_array($path[0], Module::getModuleList())){
377
+                    $module = $path[0];
378
+                    $class = ucfirst($path[1]);
379
+                }
380
+            }
381
+            else{
382
+                $class = ucfirst($class);
383
+            }
384
+            if (! $module && !empty($obj->moduleName)){
385
+                $module = $obj->moduleName;
386
+            }
387
+            return array(
388
+                        'class' => $class,
389
+                        'module' => $module
390
+                    );
391
+        }
392 392
 
393
-		/**
394
-		 * Get the module information for the function to load
395
-		 * @param  string $function the function name like moduleName/functionName, functionName,
396
-		 * @return array        the module information
397
-		 * array(
398
-		 * 	'module'=> 'module_name'
399
-		 * 	'function' => 'function'
400
-		 * 	'file' => 'file'
401
-		 * )
402
-		 */
403
-		protected static function getModuleInfoForFunction($function){
404
-			$module = null;
405
-			$file = null;
406
-			$obj = & get_instance();
407
-			//check if the request class contains module name
408
-			if (strpos($function, '/') !== false){
409
-				$path = explode('/', $function);
410
-				if (isset($path[0]) && in_array($path[0], Module::getModuleList())){
411
-					$module = $path[0];
412
-					$function = 'function_' . $path[1];
413
-					$file = $path[0] . DS . $function.'.php';
414
-				}
415
-			}
416
-			if (! $module && !empty($obj->moduleName)){
417
-				$module = $obj->moduleName;
418
-			}
419
-			return array(
420
-						'function' => $function,
421
-						'module' => $module,
422
-						'file' => $file
423
-					);
424
-		}
393
+        /**
394
+         * Get the module information for the function to load
395
+         * @param  string $function the function name like moduleName/functionName, functionName,
396
+         * @return array        the module information
397
+         * array(
398
+         * 	'module'=> 'module_name'
399
+         * 	'function' => 'function'
400
+         * 	'file' => 'file'
401
+         * )
402
+         */
403
+        protected static function getModuleInfoForFunction($function){
404
+            $module = null;
405
+            $file = null;
406
+            $obj = & get_instance();
407
+            //check if the request class contains module name
408
+            if (strpos($function, '/') !== false){
409
+                $path = explode('/', $function);
410
+                if (isset($path[0]) && in_array($path[0], Module::getModuleList())){
411
+                    $module = $path[0];
412
+                    $function = 'function_' . $path[1];
413
+                    $file = $path[0] . DS . $function.'.php';
414
+                }
415
+            }
416
+            if (! $module && !empty($obj->moduleName)){
417
+                $module = $obj->moduleName;
418
+            }
419
+            return array(
420
+                        'function' => $function,
421
+                        'module' => $module,
422
+                        'file' => $file
423
+                    );
424
+        }
425 425
 
426
-		/**
427
-		 * Get the module information for the language to load
428
-		 * @param  string $language the language name like moduleName/languageName, languageName,
429
-		 * @return array        the module information
430
-		 * array(
431
-		 * 	'module'=> 'module_name'
432
-		 * 	'language' => 'language'
433
-		 * 	'file' => 'file'
434
-		 * )
435
-		 */
436
-		protected static function getModuleInfoForLanguage($language){
437
-			$module = null;
438
-			$file = null;
439
-			$obj = & get_instance();
440
-			//check if the request class contains module name
441
-			if (strpos($language, '/') !== false){
442
-				$path = explode('/', $language);
443
-				if (isset($path[0]) && in_array($path[0], Module::getModuleList())){
444
-					$module = $path[0];
445
-					$language = 'lang_' . $path[1] . '.php';
446
-					$file = $path[0] . DS .$language;
447
-				}
448
-			}
449
-			if (! $module && !empty($obj->moduleName)){
450
-				$module = $obj->moduleName;
451
-			}
452
-			return array(
453
-						'language' => $language,
454
-						'module' => $module,
455
-						'file' => $file
456
-					);
457
-		}
426
+        /**
427
+         * Get the module information for the language to load
428
+         * @param  string $language the language name like moduleName/languageName, languageName,
429
+         * @return array        the module information
430
+         * array(
431
+         * 	'module'=> 'module_name'
432
+         * 	'language' => 'language'
433
+         * 	'file' => 'file'
434
+         * )
435
+         */
436
+        protected static function getModuleInfoForLanguage($language){
437
+            $module = null;
438
+            $file = null;
439
+            $obj = & get_instance();
440
+            //check if the request class contains module name
441
+            if (strpos($language, '/') !== false){
442
+                $path = explode('/', $language);
443
+                if (isset($path[0]) && in_array($path[0], Module::getModuleList())){
444
+                    $module = $path[0];
445
+                    $language = 'lang_' . $path[1] . '.php';
446
+                    $file = $path[0] . DS .$language;
447
+                }
448
+            }
449
+            if (! $module && !empty($obj->moduleName)){
450
+                $module = $obj->moduleName;
451
+            }
452
+            return array(
453
+                        'language' => $language,
454
+                        'module' => $module,
455
+                        'file' => $file
456
+                    );
457
+        }
458 458
 
459 459
 
460
-		/**
461
-		 * Get the module information for the config to load
462
-		 * @param  string $filename the filename of the configuration file,
463
-		 * @return array        the module information
464
-		 * array(
465
-		 * 	'module'=> 'module_name'
466
-		 * 	'filename' => 'filename'
467
-		 * )
468
-		 */
469
-		protected static function getModuleInfoForConfig($filename){
470
-			$module = null;
471
-			$obj = & get_instance();
472
-			//check if the request class contains module name
473
-			if (strpos($filename, '/') !== false){
474
-				$path = explode('/', $filename);
475
-				if (isset($path[0]) && in_array($path[0], Module::getModuleList())){
476
-					$module = $path[0];
477
-					$filename = $path[1] . '.php';
478
-				}
479
-			}
480
-			if (! $module && !empty($obj->moduleName)){
481
-				$module = $obj->moduleName;
482
-			}
483
-			return array(
484
-						'filename' => $filename,
485
-						'module' => $module
486
-					);
487
-		}
460
+        /**
461
+         * Get the module information for the config to load
462
+         * @param  string $filename the filename of the configuration file,
463
+         * @return array        the module information
464
+         * array(
465
+         * 	'module'=> 'module_name'
466
+         * 	'filename' => 'filename'
467
+         * )
468
+         */
469
+        protected static function getModuleInfoForConfig($filename){
470
+            $module = null;
471
+            $obj = & get_instance();
472
+            //check if the request class contains module name
473
+            if (strpos($filename, '/') !== false){
474
+                $path = explode('/', $filename);
475
+                if (isset($path[0]) && in_array($path[0], Module::getModuleList())){
476
+                    $module = $path[0];
477
+                    $filename = $path[1] . '.php';
478
+                }
479
+            }
480
+            if (! $module && !empty($obj->moduleName)){
481
+                $module = $obj->moduleName;
482
+            }
483
+            return array(
484
+                        'filename' => $filename,
485
+                        'module' => $module
486
+                    );
487
+        }
488 488
 
489
-		/**
490
-		 * Get the name of model or library instance if is null
491
-		 * @param  string $class the class name to determine the instance
492
-		 * @return string        the instance name
493
-		 */
494
-		protected static function getModelLibraryInstanceName($class){
495
-			//for module
496
-			$instance = null;
497
-			if (strpos($class, '/') !== false){
498
-				$path = explode('/', $class);
499
-				if (isset($path[1])){
500
-					$instance = strtolower($path[1]);
501
-				}
502
-			}
503
-			else{
504
-				$instance = strtolower($class);
505
-			}
506
-			return $instance;
507
-		}
489
+        /**
490
+         * Get the name of model or library instance if is null
491
+         * @param  string $class the class name to determine the instance
492
+         * @return string        the instance name
493
+         */
494
+        protected static function getModelLibraryInstanceName($class){
495
+            //for module
496
+            $instance = null;
497
+            if (strpos($class, '/') !== false){
498
+                $path = explode('/', $class);
499
+                if (isset($path[1])){
500
+                    $instance = strtolower($path[1]);
501
+                }
502
+            }
503
+            else{
504
+                $instance = strtolower($class);
505
+            }
506
+            return $instance;
507
+        }
508 508
 
509
-		/**
510
-		 * Get the library file path using the module information
511
-		 * @param  string $class the class name
512
-		 * @return string|null        the library file path otherwise null will be returned
513
-		 */
514
-		protected static function getLibraryPathUsingModuleInfo($class){
515
-			$logger = static::getLogger();
516
-			$libraryFilePath = null;
517
-			$logger->debug('Checking library [' . $class . '] from module list ...');
518
-			$moduleInfo = self::getModuleInfoForModelLibrary($class);
519
-			$module = $moduleInfo['module'];
520
-			$class  = $moduleInfo['class'];
521
-			$moduleLibraryPath = Module::findLibraryFullPath($class, $module);
522
-			if ($moduleLibraryPath){
523
-				$logger->info('Found library [' . $class . '] from module [' .$module. '], the file path is [' .$moduleLibraryPath. '] we will used it');
524
-				$libraryFilePath = $moduleLibraryPath;
525
-			}
526
-			else{
527
-				$logger->info('Cannot find library [' . $class . '] from modules using the default location');
528
-			}
529
-			return $libraryFilePath;
530
-		}
509
+        /**
510
+         * Get the library file path using the module information
511
+         * @param  string $class the class name
512
+         * @return string|null        the library file path otherwise null will be returned
513
+         */
514
+        protected static function getLibraryPathUsingModuleInfo($class){
515
+            $logger = static::getLogger();
516
+            $libraryFilePath = null;
517
+            $logger->debug('Checking library [' . $class . '] from module list ...');
518
+            $moduleInfo = self::getModuleInfoForModelLibrary($class);
519
+            $module = $moduleInfo['module'];
520
+            $class  = $moduleInfo['class'];
521
+            $moduleLibraryPath = Module::findLibraryFullPath($class, $module);
522
+            if ($moduleLibraryPath){
523
+                $logger->info('Found library [' . $class . '] from module [' .$module. '], the file path is [' .$moduleLibraryPath. '] we will used it');
524
+                $libraryFilePath = $moduleLibraryPath;
525
+            }
526
+            else{
527
+                $logger->info('Cannot find library [' . $class . '] from modules using the default location');
528
+            }
529
+            return $libraryFilePath;
530
+        }
531 531
 
532
-		/**
533
-		 * Load the library 
534
-		 * @param  string $libraryFilePath the file path of the library to load
535
-		 * @param  string $class           the class name
536
-		 * @param  string $instance        the instance
537
-		 * @param  array  $params          the parameter to use
538
-		 * @return void
539
-		 */
540
-		protected static function loadLibrary($libraryFilePath, $class, $instance, $params = array()){
541
-			if ($libraryFilePath){
542
-				$logger = static::getLogger();
543
-				require_once $libraryFilePath;
544
-				if (class_exists($class)){
545
-					$c = $params ? new $class($params) : new $class();
546
-					$obj = & get_instance();
547
-					$obj->{$instance} = $c;
548
-					static::$loaded[$instance] = $class;
549
-					$logger->info('Library [' . $class . '] --> ' . $libraryFilePath . ' loaded successfully.');
550
-				}
551
-				else{
552
-					show_error('The file '.$libraryFilePath.' exists but does not contain the class '.$class);
553
-				}
554
-			}
555
-			else{
556
-				show_error('Unable to find library class [' . $class . ']');
557
-			}
558
-		}
532
+        /**
533
+         * Load the library 
534
+         * @param  string $libraryFilePath the file path of the library to load
535
+         * @param  string $class           the class name
536
+         * @param  string $instance        the instance
537
+         * @param  array  $params          the parameter to use
538
+         * @return void
539
+         */
540
+        protected static function loadLibrary($libraryFilePath, $class, $instance, $params = array()){
541
+            if ($libraryFilePath){
542
+                $logger = static::getLogger();
543
+                require_once $libraryFilePath;
544
+                if (class_exists($class)){
545
+                    $c = $params ? new $class($params) : new $class();
546
+                    $obj = & get_instance();
547
+                    $obj->{$instance} = $c;
548
+                    static::$loaded[$instance] = $class;
549
+                    $logger->info('Library [' . $class . '] --> ' . $libraryFilePath . ' loaded successfully.');
550
+                }
551
+                else{
552
+                    show_error('The file '.$libraryFilePath.' exists but does not contain the class '.$class);
553
+                }
554
+            }
555
+            else{
556
+                show_error('Unable to find library class [' . $class . ']');
557
+            }
558
+        }
559 559
 
560
-		/**
561
-		 * Load the language 
562
-		 * @param  string $languageFilePath the file path of the language to load
563
-		 * @param  string $language           the language name
564
-		 * @return void
565
-		 */
566
-		protected static function loadLanguage($languageFilePath, $language){
567
-			if ($languageFilePath){
568
-				$logger = static::getLogger();
569
-				$lang = array();
570
-				require_once $languageFilePath;
571
-				if (! empty($lang) && is_array($lang)){
572
-					$logger->info('Language file  [' .$languageFilePath. '] contains the valid languages keys add them to language list');
573
-					//Note: may be here the class 'Lang' not yet loaded
574
-					$langObj =& class_loader('Lang', 'classes');
575
-					$langObj->addLangMessages($lang);
576
-					//free the memory
577
-					unset($lang);
578
-				}
579
-				static::$loaded['lang_' . $language] = $languageFilePath;
580
-				$logger->info('Language [' . $language . '] --> ' . $languageFilePath . ' loaded successfully.');
581
-			}
582
-			else{
583
-				show_error('Unable to find language [' . $language . ']');
584
-			}
585
-		}
560
+        /**
561
+         * Load the language 
562
+         * @param  string $languageFilePath the file path of the language to load
563
+         * @param  string $language           the language name
564
+         * @return void
565
+         */
566
+        protected static function loadLanguage($languageFilePath, $language){
567
+            if ($languageFilePath){
568
+                $logger = static::getLogger();
569
+                $lang = array();
570
+                require_once $languageFilePath;
571
+                if (! empty($lang) && is_array($lang)){
572
+                    $logger->info('Language file  [' .$languageFilePath. '] contains the valid languages keys add them to language list');
573
+                    //Note: may be here the class 'Lang' not yet loaded
574
+                    $langObj =& class_loader('Lang', 'classes');
575
+                    $langObj->addLangMessages($lang);
576
+                    //free the memory
577
+                    unset($lang);
578
+                }
579
+                static::$loaded['lang_' . $language] = $languageFilePath;
580
+                $logger->info('Language [' . $language . '] --> ' . $languageFilePath . ' loaded successfully.');
581
+            }
582
+            else{
583
+                show_error('Unable to find language [' . $language . ']');
584
+            }
585
+        }
586 586
 
587
-		/**
588
-		 * Get all the autoload using the configuration file
589
-		 * @return array
590
-		 */
591
-		private function getResourcesFromAutoloadConfig(){
592
-			$autoloads = array();
593
-			$autoloads['config']    = array();
594
-			$autoloads['languages'] = array();
595
-			$autoloads['libraries'] = array();
596
-			$autoloads['models']    = array();
597
-			$autoloads['functions'] = array();
598
-			//loading of the resources from autoload configuration file
599
-			if (file_exists(CONFIG_PATH . 'autoload.php')){
600
-				$autoload = array();
601
-				require_once CONFIG_PATH . 'autoload.php';
602
-				if (! empty($autoload) && is_array($autoload)){
603
-					$autoloads = array_merge($autoloads, $autoload);
604
-					unset($autoload);
605
-				}
606
-			}
607
-			//loading autoload configuration for modules
608
-			$modulesAutoloads = Module::getModulesAutoloadConfig();
609
-			if (! empty($modulesAutoloads) && is_array($modulesAutoloads)){
610
-				$autoloads = array_merge_recursive($autoloads, $modulesAutoloads);
611
-			}
612
-			return $autoloads;
613
-		}
587
+        /**
588
+         * Get all the autoload using the configuration file
589
+         * @return array
590
+         */
591
+        private function getResourcesFromAutoloadConfig(){
592
+            $autoloads = array();
593
+            $autoloads['config']    = array();
594
+            $autoloads['languages'] = array();
595
+            $autoloads['libraries'] = array();
596
+            $autoloads['models']    = array();
597
+            $autoloads['functions'] = array();
598
+            //loading of the resources from autoload configuration file
599
+            if (file_exists(CONFIG_PATH . 'autoload.php')){
600
+                $autoload = array();
601
+                require_once CONFIG_PATH . 'autoload.php';
602
+                if (! empty($autoload) && is_array($autoload)){
603
+                    $autoloads = array_merge($autoloads, $autoload);
604
+                    unset($autoload);
605
+                }
606
+            }
607
+            //loading autoload configuration for modules
608
+            $modulesAutoloads = Module::getModulesAutoloadConfig();
609
+            if (! empty($modulesAutoloads) && is_array($modulesAutoloads)){
610
+                $autoloads = array_merge_recursive($autoloads, $modulesAutoloads);
611
+            }
612
+            return $autoloads;
613
+        }
614 614
 
615
-		/**
616
-		 * Load the autoload configuration
617
-		 * @return void
618
-		 */
619
-		private function loadResourcesFromAutoloadConfig(){
620
-			$autoloads = array();
621
-			$autoloads['config']    = array();
622
-			$autoloads['languages'] = array();
623
-			$autoloads['libraries'] = array();
624
-			$autoloads['models']    = array();
625
-			$autoloads['functions'] = array();
615
+        /**
616
+         * Load the autoload configuration
617
+         * @return void
618
+         */
619
+        private function loadResourcesFromAutoloadConfig(){
620
+            $autoloads = array();
621
+            $autoloads['config']    = array();
622
+            $autoloads['languages'] = array();
623
+            $autoloads['libraries'] = array();
624
+            $autoloads['models']    = array();
625
+            $autoloads['functions'] = array();
626 626
 
627
-			$list = $this->getResourcesFromAutoloadConfig();
628
-			$autoloads = array_merge($autoloads, $list);
627
+            $list = $this->getResourcesFromAutoloadConfig();
628
+            $autoloads = array_merge($autoloads, $list);
629 629
 			
630
-			//config autoload
631
-			$this->loadAutoloadResourcesArray('config', $autoloads['config']);
630
+            //config autoload
631
+            $this->loadAutoloadResourcesArray('config', $autoloads['config']);
632 632
 			
633
-			//languages autoload
634
-			$this->loadAutoloadResourcesArray('lang', $autoloads['languages']);
633
+            //languages autoload
634
+            $this->loadAutoloadResourcesArray('lang', $autoloads['languages']);
635 635
 			
636
-			//libraries autoload
637
-			$this->loadAutoloadResourcesArray('library', $autoloads['libraries']);
636
+            //libraries autoload
637
+            $this->loadAutoloadResourcesArray('library', $autoloads['libraries']);
638 638
 
639
-			//models autoload
640
-			$this->loadAutoloadResourcesArray('model', $autoloads['models']);
639
+            //models autoload
640
+            $this->loadAutoloadResourcesArray('model', $autoloads['models']);
641 641
 			
642
-			//functions autoload
643
-			$this->loadAutoloadResourcesArray('functions', $autoloads['functions']);
644
-		}
642
+            //functions autoload
643
+            $this->loadAutoloadResourcesArray('functions', $autoloads['functions']);
644
+        }
645 645
 
646
-		/**
647
-		 * Load the resources autoload array
648
-		 * @param  string $method    this object method name to call
649
-		 * @param  array  $resources the resource to load
650
-		 * @return void            
651
-		 */
652
-		private function loadAutoloadResourcesArray($method, array $resources){
653
-			foreach ($resources as $name) {
654
-				$this->{$method}($name);
655
-			}
656
-		}
657
-	}
646
+        /**
647
+         * Load the resources autoload array
648
+         * @param  string $method    this object method name to call
649
+         * @param  array  $resources the resource to load
650
+         * @return void            
651
+         */
652
+        private function loadAutoloadResourcesArray($method, array $resources){
653
+            foreach ($resources as $name) {
654
+                $this->{$method}($name);
655
+            }
656
+        }
657
+    }
Please login to merge, or discard this patch.
Spacing   +105 added lines, -105 removed lines patch added patch discarded remove patch
@@ -23,7 +23,7 @@  discard block
 block discarded – undo
23 23
 	 * along with this program; if not, write to the Free Software
24 24
 	 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
25 25
 	*/
26
-	class Loader{
26
+	class Loader {
27 27
 		
28 28
 		/**
29 29
 		 * List of loaded resources
@@ -38,7 +38,7 @@  discard block
 block discarded – undo
38 38
 		private static $logger;
39 39
 
40 40
 
41
-		public function __construct(){
41
+		public function __construct() {
42 42
 			//add the resources already loaded during application bootstrap
43 43
 			//in the list to prevent duplicate or loading the resources again.
44 44
 			static::$loaded = class_loaded();
@@ -51,10 +51,10 @@  discard block
 block discarded – undo
51 51
 		 * The signleton of the logger
52 52
 		 * @return object the Log instance
53 53
 		 */
54
-		public static function getLogger(){
55
-			if(self::$logger == null){
54
+		public static function getLogger() {
55
+			if (self::$logger == null) {
56 56
 				$logger = array();
57
-				$logger[0] =& class_loader('Log', 'classes');
57
+				$logger[0] = & class_loader('Log', 'classes');
58 58
 				$logger[0]->setLogger('Library::Loader');
59 59
 				self::$logger = $logger[0];
60 60
 			}
@@ -66,7 +66,7 @@  discard block
 block discarded – undo
66 66
 		 * @param object $logger the log object
67 67
 		 * @return object the log instance
68 68
 		 */
69
-		public static function setLogger($logger){
69
+		public static function setLogger($logger) {
70 70
 			self::$logger = $logger;
71 71
 			return self::$logger;
72 72
 		}
@@ -80,18 +80,18 @@  discard block
 block discarded – undo
80 80
 		 *
81 81
 		 * @return void
82 82
 		 */
83
-		public static function model($class, $instance = null){
83
+		public static function model($class, $instance = null) {
84 84
 			$logger = static::getLogger();
85 85
 			$class = str_ireplace('.php', '', $class);
86 86
 			$class = trim($class, '/\\');
87
-			$file = ucfirst($class).'.php';
87
+			$file = ucfirst($class) . '.php';
88 88
 			$logger->debug('Loading model [' . $class . '] ...');
89 89
 			//************
90
-			if (! $instance){
90
+			if (!$instance) {
91 91
 				$instance = self::getModelLibraryInstanceName($class);
92 92
 			}
93 93
 			//****************
94
-			if (isset(static::$loaded[$instance])){
94
+			if (isset(static::$loaded[$instance])) {
95 95
 				$logger->info('Model [' . $class . '] already loaded no need to load it again, cost in performance');
96 96
 				return;
97 97
 			}
@@ -104,28 +104,28 @@  discard block
 block discarded – undo
104 104
 			$class  = $moduleInfo['class'];
105 105
 			
106 106
 			$moduleModelFilePath = Module::findModelFullPath($class, $module);
107
-			if ($moduleModelFilePath){
108
-				$logger->info('Found model [' . $class . '] from module [' .$module. '], the file path is [' .$moduleModelFilePath. '] we will used it');
107
+			if ($moduleModelFilePath) {
108
+				$logger->info('Found model [' . $class . '] from module [' . $module . '], the file path is [' . $moduleModelFilePath . '] we will used it');
109 109
 				$classFilePath = $moduleModelFilePath;
110 110
 			}
111
-			else{
111
+			else {
112 112
 				$logger->info('Cannot find model [' . $class . '] from modules using the default location');
113 113
 			}
114 114
 			$logger->info('The model file path to be loaded is [' . $classFilePath . ']');
115
-			if (file_exists($classFilePath)){
115
+			if (file_exists($classFilePath)) {
116 116
 				require_once $classFilePath;
117
-				if (class_exists($class)){
117
+				if (class_exists($class)) {
118 118
 					$c = new $class();
119 119
 					$obj = & get_instance();
120 120
 					$obj->{$instance} = $c;
121 121
 					static::$loaded[$instance] = $class;
122 122
 					$logger->info('Model [' . $class . '] --> ' . $classFilePath . ' loaded successfully.');
123 123
 				}
124
-				else{
125
-					show_error('The file '.$classFilePath.' exists but does not contain the class ['. $class . ']');
124
+				else {
125
+					show_error('The file ' . $classFilePath . ' exists but does not contain the class [' . $class . ']');
126 126
 				}
127 127
 			}
128
-			else{
128
+			else {
129 129
 				show_error('Unable to find the model [' . $class . ']');
130 130
 			}
131 131
 		}
@@ -140,22 +140,22 @@  discard block
 block discarded – undo
140 140
 		 *
141 141
 		 * @return void
142 142
 		 */
143
-		public static function library($class, $instance = null, array $params = array()){
143
+		public static function library($class, $instance = null, array $params = array()) {
144 144
 			$logger = static::getLogger();
145 145
 			$class = str_ireplace('.php', '', $class);
146 146
 			$class = trim($class, '/\\');
147
-			$file = ucfirst($class) .'.php';
147
+			$file = ucfirst($class) . '.php';
148 148
 			$logger->debug('Loading library [' . $class . '] ...');
149
-			if (! $instance){
149
+			if (!$instance) {
150 150
 				$instance = self::getModelLibraryInstanceName($class);
151 151
 			}
152
-			if (isset(static::$loaded[$instance])){
152
+			if (isset(static::$loaded[$instance])) {
153 153
 				$logger->info('Library [' . $class . '] already loaded no need to load it again, cost in performance');
154 154
 				return;
155 155
 			}
156 156
 			$obj = & get_instance();
157 157
 			//Check and load Database library
158
-			if (strtolower($class) == 'database'){
158
+			if (strtolower($class) == 'database') {
159 159
 				$logger->info('This is the Database library ...');
160 160
 				$obj->{$instance} = & class_loader('Database', 'classes/database', $params);
161 161
 				static::$loaded[$instance] = $class;
@@ -164,18 +164,18 @@  discard block
 block discarded – undo
164 164
 			}
165 165
 			$libraryFilePath = null;
166 166
 			$logger->debug('Check if this is a system library ...');
167
-			if (file_exists(CORE_LIBRARY_PATH . $file)){
167
+			if (file_exists(CORE_LIBRARY_PATH . $file)) {
168 168
 				$libraryFilePath = CORE_LIBRARY_PATH . $file;
169 169
 				$class = ucfirst($class);
170 170
 				$logger->info('This library is a system library');
171 171
 			}
172
-			else{
172
+			else {
173 173
 				$logger->info('This library is not a system library');	
174 174
 				//first check if this library is in the module
175 175
 				$libraryFilePath = self::getLibraryPathUsingModuleInfo($class);
176 176
 				//***************
177 177
 			}
178
-			if (! $libraryFilePath && file_exists(LIBRARY_PATH . $file)){
178
+			if (!$libraryFilePath && file_exists(LIBRARY_PATH . $file)) {
179 179
 				$libraryFilePath = LIBRARY_PATH . $file;
180 180
 			}
181 181
 			$logger->info('The library file path to be loaded is [' . $libraryFilePath . ']');
@@ -190,14 +190,14 @@  discard block
 block discarded – undo
190 190
 		 *
191 191
 		 * @return void
192 192
 		 */
193
-		public static function functions($function){
193
+		public static function functions($function) {
194 194
 			$logger = static::getLogger();
195 195
 			$function = str_ireplace('.php', '', $function);
196 196
 			$function = trim($function, '/\\');
197 197
 			$function = str_ireplace('function_', '', $function);
198
-			$file = 'function_'.$function.'.php';
198
+			$file = 'function_' . $function . '.php';
199 199
 			$logger->debug('Loading helper [' . $function . '] ...');
200
-			if (isset(static::$loaded['function_' . $function])){
200
+			if (isset(static::$loaded['function_' . $function])) {
201 201
 				$logger->info('Helper [' . $function . '] already loaded no need to load it again, cost in performance');
202 202
 				return;
203 203
 			}
@@ -207,22 +207,22 @@  discard block
 block discarded – undo
207 207
 			$moduleInfo = self::getModuleInfoForFunction($function);
208 208
 			$module    = $moduleInfo['module'];
209 209
 			$function  = $moduleInfo['function'];
210
-			if(! empty($moduleInfo['file'])){
210
+			if (!empty($moduleInfo['file'])) {
211 211
 				$file = $moduleInfo['file'];
212 212
 			}
213 213
 			$moduleFunctionPath = Module::findFunctionFullPath($function, $module);
214
-			if ($moduleFunctionPath){
215
-				$logger->info('Found helper [' . $function . '] from module [' .$module. '], the file path is [' .$moduleFunctionPath. '] we will used it');
214
+			if ($moduleFunctionPath) {
215
+				$logger->info('Found helper [' . $function . '] from module [' . $module . '], the file path is [' . $moduleFunctionPath . '] we will used it');
216 216
 				$functionFilePath = $moduleFunctionPath;
217 217
 			}
218
-			else{
218
+			else {
219 219
 				$logger->info('Cannot find helper [' . $function . '] from modules using the default location');
220 220
 			}
221
-			if (! $functionFilePath){
221
+			if (!$functionFilePath) {
222 222
 				$searchDir = array(FUNCTIONS_PATH, CORE_FUNCTIONS_PATH);
223
-				foreach($searchDir as $dir){
223
+				foreach ($searchDir as $dir) {
224 224
 					$filePath = $dir . $file;
225
-					if (file_exists($filePath)){
225
+					if (file_exists($filePath)) {
226 226
 						$functionFilePath = $filePath;
227 227
 						//is already found not to continue
228 228
 						break;
@@ -230,12 +230,12 @@  discard block
 block discarded – undo
230 230
 				}
231 231
 			}
232 232
 			$logger->info('The helper file path to be loaded is [' . $functionFilePath . ']');
233
-			if ($functionFilePath){
233
+			if ($functionFilePath) {
234 234
 				require_once $functionFilePath;
235 235
 				static::$loaded['function_' . $function] = $functionFilePath;
236 236
 				$logger->info('Helper [' . $function . '] --> ' . $functionFilePath . ' loaded successfully.');
237 237
 			}
238
-			else{
238
+			else {
239 239
 				show_error('Unable to find helper file [' . $file . ']');
240 240
 			}
241 241
 		}
@@ -247,14 +247,14 @@  discard block
 block discarded – undo
247 247
 		 *
248 248
 		 * @return void
249 249
 		 */
250
-		public static function config($filename){
250
+		public static function config($filename) {
251 251
 			$logger = static::getLogger();
252 252
 			$filename = str_ireplace('.php', '', $filename);
253 253
 			$filename = trim($filename, '/\\');
254 254
 			$filename = str_ireplace('config_', '', $filename);
255
-			$file = 'config_'.$filename.'.php';
255
+			$file = 'config_' . $filename . '.php';
256 256
 			$logger->debug('Loading configuration [' . $filename . '] ...');
257
-			if (isset(static::$loaded['config_' . $filename])){
257
+			if (isset(static::$loaded['config_' . $filename])) {
258 258
 				$logger->info('Configuration [' . $file . '] already loaded no need to load it again, cost in performance');
259 259
 				return;
260 260
 			}
@@ -265,18 +265,18 @@  discard block
 block discarded – undo
265 265
 			$module    = $moduleInfo['module'];
266 266
 			$filename  = $moduleInfo['filename'];
267 267
 			$moduleConfigPath = Module::findConfigFullPath($filename, $module);
268
-			if ($moduleConfigPath){
269
-				$logger->info('Found config [' . $filename . '] from module [' .$module. '], the file path is [' .$moduleConfigPath. '] we will used it');
268
+			if ($moduleConfigPath) {
269
+				$logger->info('Found config [' . $filename . '] from module [' . $module . '], the file path is [' . $moduleConfigPath . '] we will used it');
270 270
 				$configFilePath = $moduleConfigPath;
271 271
 			}
272
-			else{
272
+			else {
273 273
 				$logger->info('Cannot find config [' . $filename . '] from modules using the default location');
274 274
 			}
275 275
 			$logger->info('The config file path to be loaded is [' . $configFilePath . ']');
276 276
 			$config = array();
277
-			if (file_exists($configFilePath)){
277
+			if (file_exists($configFilePath)) {
278 278
 				require_once $configFilePath;
279
-				if (! empty($config) && is_array($config)){
279
+				if (!empty($config) && is_array($config)) {
280 280
 					Config::setAll($config);
281 281
 					static::$loaded['config_' . $filename] = $configFilePath;
282 282
 					$logger->info('Configuration [' . $configFilePath . '] loaded successfully.');
@@ -284,8 +284,8 @@  discard block
 block discarded – undo
284 284
 					unset($config);
285 285
 				}
286 286
 			}
287
-			else{
288
-				show_error('Unable to find config file ['. $configFilePath . ']');
287
+			else {
288
+				show_error('Unable to find config file [' . $configFilePath . ']');
289 289
 			}
290 290
 		}
291 291
 
@@ -297,14 +297,14 @@  discard block
 block discarded – undo
297 297
 		 *
298 298
 		 * @return void
299 299
 		 */
300
-		public static function lang($language){
300
+		public static function lang($language) {
301 301
 			$logger = static::getLogger();
302 302
 			$language = str_ireplace('.php', '', $language);
303 303
 			$language = trim($language, '/\\');
304 304
 			$language = str_ireplace('lang_', '', $language);
305
-			$file = 'lang_'.$language.'.php';
305
+			$file = 'lang_' . $language . '.php';
306 306
 			$logger->debug('Loading language [' . $language . '] ...');
307
-			if (isset(static::$loaded['lang_' . $language])){
307
+			if (isset(static::$loaded['lang_' . $language])) {
308 308
 				$logger->info('Language [' . $language . '] already loaded no need to load it again, cost in performance');
309 309
 				return;
310 310
 			}
@@ -316,22 +316,22 @@  discard block
 block discarded – undo
316 316
 			$moduleInfo = self::getModuleInfoForLanguage($language);
317 317
 			$module    = $moduleInfo['module'];
318 318
 			$language  = $moduleInfo['language'];
319
-			if(! empty($moduleInfo['file'])){
319
+			if (!empty($moduleInfo['file'])) {
320 320
 				$file = $moduleInfo['file'];
321 321
 			}
322 322
 			$moduleLanguagePath = Module::findLanguageFullPath($language, $module, $appLang);
323
-			if ($moduleLanguagePath){
324
-				$logger->info('Found language [' . $language . '] from module [' .$module. '], the file path is [' .$moduleLanguagePath. '] we will used it');
323
+			if ($moduleLanguagePath) {
324
+				$logger->info('Found language [' . $language . '] from module [' . $module . '], the file path is [' . $moduleLanguagePath . '] we will used it');
325 325
 				$languageFilePath = $moduleLanguagePath;
326 326
 			}
327
-			else{
327
+			else {
328 328
 				$logger->info('Cannot find language [' . $language . '] from modules using the default location');
329 329
 			}
330
-			if (! $languageFilePath){
330
+			if (!$languageFilePath) {
331 331
 				$searchDir = array(APP_LANG_PATH, CORE_LANG_PATH);
332
-				foreach($searchDir as $dir){
332
+				foreach ($searchDir as $dir) {
333 333
 					$filePath = $dir . $appLang . DS . $file;
334
-					if (file_exists($filePath)){
334
+					if (file_exists($filePath)) {
335 335
 						$languageFilePath = $filePath;
336 336
 						//already found no need continue
337 337
 						break;
@@ -347,14 +347,14 @@  discard block
 block discarded – undo
347 347
 		 * if can not found will use the default value from configuration
348 348
 		 * @return string the app language like "en", "fr"
349 349
 		 */
350
-		protected static function getAppLang(){
350
+		protected static function getAppLang() {
351 351
 			//determine the current language
352 352
 			$appLang = get_config('default_language');
353 353
 			//if the language exists in the cookie use it
354 354
 			$cfgKey = get_config('language_cookie_name');
355 355
 			$objCookie = & class_loader('Cookie');
356 356
 			$cookieLang = $objCookie->get($cfgKey);
357
-			if ($cookieLang){
357
+			if ($cookieLang) {
358 358
 				$appLang = $cookieLang;
359 359
 			}
360 360
 			return $appLang;
@@ -368,20 +368,20 @@  discard block
 block discarded – undo
368 368
 		 * 	'class' => 'class_name'
369 369
 		 * )
370 370
 		 */
371
-		protected static function getModuleInfoForModelLibrary($class){
371
+		protected static function getModuleInfoForModelLibrary($class) {
372 372
 			$module = null;
373 373
 			$obj = & get_instance();
374
-			if (strpos($class, '/') !== false){
374
+			if (strpos($class, '/') !== false) {
375 375
 				$path = explode('/', $class);
376
-				if (isset($path[0]) && in_array($path[0], Module::getModuleList())){
376
+				if (isset($path[0]) && in_array($path[0], Module::getModuleList())) {
377 377
 					$module = $path[0];
378 378
 					$class = ucfirst($path[1]);
379 379
 				}
380 380
 			}
381
-			else{
381
+			else {
382 382
 				$class = ucfirst($class);
383 383
 			}
384
-			if (! $module && !empty($obj->moduleName)){
384
+			if (!$module && !empty($obj->moduleName)) {
385 385
 				$module = $obj->moduleName;
386 386
 			}
387 387
 			return array(
@@ -400,20 +400,20 @@  discard block
 block discarded – undo
400 400
 		 * 	'file' => 'file'
401 401
 		 * )
402 402
 		 */
403
-		protected static function getModuleInfoForFunction($function){
403
+		protected static function getModuleInfoForFunction($function) {
404 404
 			$module = null;
405 405
 			$file = null;
406 406
 			$obj = & get_instance();
407 407
 			//check if the request class contains module name
408
-			if (strpos($function, '/') !== false){
408
+			if (strpos($function, '/') !== false) {
409 409
 				$path = explode('/', $function);
410
-				if (isset($path[0]) && in_array($path[0], Module::getModuleList())){
410
+				if (isset($path[0]) && in_array($path[0], Module::getModuleList())) {
411 411
 					$module = $path[0];
412 412
 					$function = 'function_' . $path[1];
413
-					$file = $path[0] . DS . $function.'.php';
413
+					$file = $path[0] . DS . $function . '.php';
414 414
 				}
415 415
 			}
416
-			if (! $module && !empty($obj->moduleName)){
416
+			if (!$module && !empty($obj->moduleName)) {
417 417
 				$module = $obj->moduleName;
418 418
 			}
419 419
 			return array(
@@ -433,20 +433,20 @@  discard block
 block discarded – undo
433 433
 		 * 	'file' => 'file'
434 434
 		 * )
435 435
 		 */
436
-		protected static function getModuleInfoForLanguage($language){
436
+		protected static function getModuleInfoForLanguage($language) {
437 437
 			$module = null;
438 438
 			$file = null;
439 439
 			$obj = & get_instance();
440 440
 			//check if the request class contains module name
441
-			if (strpos($language, '/') !== false){
441
+			if (strpos($language, '/') !== false) {
442 442
 				$path = explode('/', $language);
443
-				if (isset($path[0]) && in_array($path[0], Module::getModuleList())){
443
+				if (isset($path[0]) && in_array($path[0], Module::getModuleList())) {
444 444
 					$module = $path[0];
445 445
 					$language = 'lang_' . $path[1] . '.php';
446
-					$file = $path[0] . DS .$language;
446
+					$file = $path[0] . DS . $language;
447 447
 				}
448 448
 			}
449
-			if (! $module && !empty($obj->moduleName)){
449
+			if (!$module && !empty($obj->moduleName)) {
450 450
 				$module = $obj->moduleName;
451 451
 			}
452 452
 			return array(
@@ -466,18 +466,18 @@  discard block
 block discarded – undo
466 466
 		 * 	'filename' => 'filename'
467 467
 		 * )
468 468
 		 */
469
-		protected static function getModuleInfoForConfig($filename){
469
+		protected static function getModuleInfoForConfig($filename) {
470 470
 			$module = null;
471 471
 			$obj = & get_instance();
472 472
 			//check if the request class contains module name
473
-			if (strpos($filename, '/') !== false){
473
+			if (strpos($filename, '/') !== false) {
474 474
 				$path = explode('/', $filename);
475
-				if (isset($path[0]) && in_array($path[0], Module::getModuleList())){
475
+				if (isset($path[0]) && in_array($path[0], Module::getModuleList())) {
476 476
 					$module = $path[0];
477 477
 					$filename = $path[1] . '.php';
478 478
 				}
479 479
 			}
480
-			if (! $module && !empty($obj->moduleName)){
480
+			if (!$module && !empty($obj->moduleName)) {
481 481
 				$module = $obj->moduleName;
482 482
 			}
483 483
 			return array(
@@ -491,16 +491,16 @@  discard block
 block discarded – undo
491 491
 		 * @param  string $class the class name to determine the instance
492 492
 		 * @return string        the instance name
493 493
 		 */
494
-		protected static function getModelLibraryInstanceName($class){
494
+		protected static function getModelLibraryInstanceName($class) {
495 495
 			//for module
496 496
 			$instance = null;
497
-			if (strpos($class, '/') !== false){
497
+			if (strpos($class, '/') !== false) {
498 498
 				$path = explode('/', $class);
499
-				if (isset($path[1])){
499
+				if (isset($path[1])) {
500 500
 					$instance = strtolower($path[1]);
501 501
 				}
502 502
 			}
503
-			else{
503
+			else {
504 504
 				$instance = strtolower($class);
505 505
 			}
506 506
 			return $instance;
@@ -511,7 +511,7 @@  discard block
 block discarded – undo
511 511
 		 * @param  string $class the class name
512 512
 		 * @return string|null        the library file path otherwise null will be returned
513 513
 		 */
514
-		protected static function getLibraryPathUsingModuleInfo($class){
514
+		protected static function getLibraryPathUsingModuleInfo($class) {
515 515
 			$logger = static::getLogger();
516 516
 			$libraryFilePath = null;
517 517
 			$logger->debug('Checking library [' . $class . '] from module list ...');
@@ -519,11 +519,11 @@  discard block
 block discarded – undo
519 519
 			$module = $moduleInfo['module'];
520 520
 			$class  = $moduleInfo['class'];
521 521
 			$moduleLibraryPath = Module::findLibraryFullPath($class, $module);
522
-			if ($moduleLibraryPath){
523
-				$logger->info('Found library [' . $class . '] from module [' .$module. '], the file path is [' .$moduleLibraryPath. '] we will used it');
522
+			if ($moduleLibraryPath) {
523
+				$logger->info('Found library [' . $class . '] from module [' . $module . '], the file path is [' . $moduleLibraryPath . '] we will used it');
524 524
 				$libraryFilePath = $moduleLibraryPath;
525 525
 			}
526
-			else{
526
+			else {
527 527
 				$logger->info('Cannot find library [' . $class . '] from modules using the default location');
528 528
 			}
529 529
 			return $libraryFilePath;
@@ -537,22 +537,22 @@  discard block
 block discarded – undo
537 537
 		 * @param  array  $params          the parameter to use
538 538
 		 * @return void
539 539
 		 */
540
-		protected static function loadLibrary($libraryFilePath, $class, $instance, $params = array()){
541
-			if ($libraryFilePath){
540
+		protected static function loadLibrary($libraryFilePath, $class, $instance, $params = array()) {
541
+			if ($libraryFilePath) {
542 542
 				$logger = static::getLogger();
543 543
 				require_once $libraryFilePath;
544
-				if (class_exists($class)){
544
+				if (class_exists($class)) {
545 545
 					$c = $params ? new $class($params) : new $class();
546 546
 					$obj = & get_instance();
547 547
 					$obj->{$instance} = $c;
548 548
 					static::$loaded[$instance] = $class;
549 549
 					$logger->info('Library [' . $class . '] --> ' . $libraryFilePath . ' loaded successfully.');
550 550
 				}
551
-				else{
552
-					show_error('The file '.$libraryFilePath.' exists but does not contain the class '.$class);
551
+				else {
552
+					show_error('The file ' . $libraryFilePath . ' exists but does not contain the class ' . $class);
553 553
 				}
554 554
 			}
555
-			else{
555
+			else {
556 556
 				show_error('Unable to find library class [' . $class . ']');
557 557
 			}
558 558
 		}
@@ -563,15 +563,15 @@  discard block
 block discarded – undo
563 563
 		 * @param  string $language           the language name
564 564
 		 * @return void
565 565
 		 */
566
-		protected static function loadLanguage($languageFilePath, $language){
567
-			if ($languageFilePath){
566
+		protected static function loadLanguage($languageFilePath, $language) {
567
+			if ($languageFilePath) {
568 568
 				$logger = static::getLogger();
569 569
 				$lang = array();
570 570
 				require_once $languageFilePath;
571
-				if (! empty($lang) && is_array($lang)){
572
-					$logger->info('Language file  [' .$languageFilePath. '] contains the valid languages keys add them to language list');
571
+				if (!empty($lang) && is_array($lang)) {
572
+					$logger->info('Language file  [' . $languageFilePath . '] contains the valid languages keys add them to language list');
573 573
 					//Note: may be here the class 'Lang' not yet loaded
574
-					$langObj =& class_loader('Lang', 'classes');
574
+					$langObj = & class_loader('Lang', 'classes');
575 575
 					$langObj->addLangMessages($lang);
576 576
 					//free the memory
577 577
 					unset($lang);
@@ -579,7 +579,7 @@  discard block
 block discarded – undo
579 579
 				static::$loaded['lang_' . $language] = $languageFilePath;
580 580
 				$logger->info('Language [' . $language . '] --> ' . $languageFilePath . ' loaded successfully.');
581 581
 			}
582
-			else{
582
+			else {
583 583
 				show_error('Unable to find language [' . $language . ']');
584 584
 			}
585 585
 		}
@@ -588,7 +588,7 @@  discard block
 block discarded – undo
588 588
 		 * Get all the autoload using the configuration file
589 589
 		 * @return array
590 590
 		 */
591
-		private function getResourcesFromAutoloadConfig(){
591
+		private function getResourcesFromAutoloadConfig() {
592 592
 			$autoloads = array();
593 593
 			$autoloads['config']    = array();
594 594
 			$autoloads['languages'] = array();
@@ -596,17 +596,17 @@  discard block
 block discarded – undo
596 596
 			$autoloads['models']    = array();
597 597
 			$autoloads['functions'] = array();
598 598
 			//loading of the resources from autoload configuration file
599
-			if (file_exists(CONFIG_PATH . 'autoload.php')){
599
+			if (file_exists(CONFIG_PATH . 'autoload.php')) {
600 600
 				$autoload = array();
601 601
 				require_once CONFIG_PATH . 'autoload.php';
602
-				if (! empty($autoload) && is_array($autoload)){
602
+				if (!empty($autoload) && is_array($autoload)) {
603 603
 					$autoloads = array_merge($autoloads, $autoload);
604 604
 					unset($autoload);
605 605
 				}
606 606
 			}
607 607
 			//loading autoload configuration for modules
608 608
 			$modulesAutoloads = Module::getModulesAutoloadConfig();
609
-			if (! empty($modulesAutoloads) && is_array($modulesAutoloads)){
609
+			if (!empty($modulesAutoloads) && is_array($modulesAutoloads)) {
610 610
 				$autoloads = array_merge_recursive($autoloads, $modulesAutoloads);
611 611
 			}
612 612
 			return $autoloads;
@@ -616,7 +616,7 @@  discard block
 block discarded – undo
616 616
 		 * Load the autoload configuration
617 617
 		 * @return void
618 618
 		 */
619
-		private function loadResourcesFromAutoloadConfig(){
619
+		private function loadResourcesFromAutoloadConfig() {
620 620
 			$autoloads = array();
621 621
 			$autoloads['config']    = array();
622 622
 			$autoloads['languages'] = array();
@@ -649,7 +649,7 @@  discard block
 block discarded – undo
649 649
 		 * @param  array  $resources the resource to load
650 650
 		 * @return void            
651 651
 		 */
652
-		private function loadAutoloadResourcesArray($method, array $resources){
652
+		private function loadAutoloadResourcesArray($method, array $resources) {
653 653
 			foreach ($resources as $name) {
654 654
 				$this->{$method}($name);
655 655
 			}
Please login to merge, or discard this patch.
config/config.php 1 patch
Indentation   +273 added lines, -273 removed lines patch added patch discarded remove patch
@@ -1,337 +1,337 @@
 block discarded – undo
1 1
 <?php
2
-	defined('ROOT_PATH') || exit('Access denied');
3
-	/**
4
-	 * TNH Framework
5
-	 *
6
-	 * A simple PHP framework created using the concept of codeigniter with bootstrap twitter
7
-	 *
8
-	 * This content is released under the GNU GPL License (GPL)
9
-	 *
10
-	 * Copyright (C) 2017 Tony NGUEREZA
11
-	 *
12
-	 * This program is free software; you can redistribute it and/or
13
-	 * modify it under the terms of the GNU General Public License
14
-	 * as published by the Free Software Foundation; either version 3
15
-	 * of the License, or (at your option) any later version.
16
-	 *
17
-	 * This program is distributed in the hope that it will be useful,
18
-	 * but WITHOUT ANY WARRANTY; without even the implied warranty of
19
-	 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
20
-	 * GNU General Public License for more details.
21
-	 *
22
-	 * You should have received a copy of the GNU General Public License
23
-	 * along with this program; if not, write to the Free Software
24
-	 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
25
-	*/
2
+    defined('ROOT_PATH') || exit('Access denied');
3
+    /**
4
+     * TNH Framework
5
+     *
6
+     * A simple PHP framework created using the concept of codeigniter with bootstrap twitter
7
+     *
8
+     * This content is released under the GNU GPL License (GPL)
9
+     *
10
+     * Copyright (C) 2017 Tony NGUEREZA
11
+     *
12
+     * This program is free software; you can redistribute it and/or
13
+     * modify it under the terms of the GNU General Public License
14
+     * as published by the Free Software Foundation; either version 3
15
+     * of the License, or (at your option) any later version.
16
+     *
17
+     * This program is distributed in the hope that it will be useful,
18
+     * but WITHOUT ANY WARRANTY; without even the implied warranty of
19
+     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
20
+     * GNU General Public License for more details.
21
+     *
22
+     * You should have received a copy of the GNU General Public License
23
+     * along with this program; if not, write to the Free Software
24
+     * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
25
+     */
26 26
 	
27
-	/**
28
-	* This file contains the main configuration of your application
29
-	* web address, front controller, error logging, session parameters, CSRF, Cache, 
30
-	* Whitelist IP access, etc.
31
-	*/
27
+    /**
28
+     * This file contains the main configuration of your application
29
+     * web address, front controller, error logging, session parameters, CSRF, Cache, 
30
+     * Whitelist IP access, etc.
31
+     */
32 32
 	
33
-	/*+---------------------------------------------------------------+
33
+    /*+---------------------------------------------------------------+
34 34
 	* Basic configuration section
35 35
 	+------------------------------------------------------------------+
36 36
 	*/
37 37
 	
38
-	/**
39
-	* The web address of your application.
40
-	*
41
-	* The address of your application or website terminated by a slash.
42
-	* You can use a domain name or IP address, for example:
43
-	*
44
-	* $config['base_url'] = 'http://www.mysite.com';
45
-	* or
46
-	* $config['base_url'] = 'http://198.15.25.12';
47
-	*
48
-	* If this value is empty, we try to determine it automatically by using 
49
-	* the server variables "SERVER_ADDR" or "SCRIPT_NAME",
50
-	* we recommend that you specify this value for a server in production this may reduce the performance of your application.
51
-	*/
52
-	$config['base_url'] = '';
38
+    /**
39
+     * The web address of your application.
40
+     *
41
+     * The address of your application or website terminated by a slash.
42
+     * You can use a domain name or IP address, for example:
43
+     *
44
+     * $config['base_url'] = 'http://www.mysite.com';
45
+     * or
46
+     * $config['base_url'] = 'http://198.15.25.12';
47
+     *
48
+     * If this value is empty, we try to determine it automatically by using 
49
+     * the server variables "SERVER_ADDR" or "SCRIPT_NAME",
50
+     * we recommend that you specify this value for a server in production this may reduce the performance of your application.
51
+     */
52
+    $config['base_url'] = '';
53 53
 	
54
-	/**
55
-	* The front controller
56
-	*
57
-	* This represents the name of the file called by the application during the loading 
58
-	* process generally the file "index.php". 
59
-	* If your webserver supports the url rewrite module, then you can leave this value empty. 
60
-	* You will find a sample file to hide this file in the url inside the root folder of your 
61
-	* application "htaccess.txt" for the apache web server just rename it to ".htaccess"
62
-	* 
63
-	* Without the rewrite module url enabled, leave this value to "index.php", in this case your urls look like:
64
-	*
65
-	* http://www.yoursite.com/index.php/controller/method
66
-	* 
67
-	* otherwise if the module is available and activated you can put this value empty and your urls look like:
68
-	*
69
-	* http://www.yoursite.com/controller/method
70
-	*
71
-	*/
72
-	$config['front_controller'] = 'index.php';
54
+    /**
55
+     * The front controller
56
+     *
57
+     * This represents the name of the file called by the application during the loading 
58
+     * process generally the file "index.php". 
59
+     * If your webserver supports the url rewrite module, then you can leave this value empty. 
60
+     * You will find a sample file to hide this file in the url inside the root folder of your 
61
+     * application "htaccess.txt" for the apache web server just rename it to ".htaccess"
62
+     * 
63
+     * Without the rewrite module url enabled, leave this value to "index.php", in this case your urls look like:
64
+     *
65
+     * http://www.yoursite.com/index.php/controller/method
66
+     * 
67
+     * otherwise if the module is available and activated you can put this value empty and your urls look like:
68
+     *
69
+     * http://www.yoursite.com/controller/method
70
+     *
71
+     */
72
+    $config['front_controller'] = 'index.php';
73 73
 	
74
-	/**
75
-	 *  Url suffix
76
-	 */
77
-	$config['url_suffix'] = '';
74
+    /**
75
+     *  Url suffix
76
+     */
77
+    $config['url_suffix'] = '';
78 78
 	
79
-	/**
80
-	 *  site charset
81
-	 */
82
-	$config['charset'] = 'UTF-8';
79
+    /**
80
+     *  site charset
81
+     */
82
+    $config['charset'] = 'UTF-8';
83 83
 	
84
-	/**
85
-	* Compress the output before send to browser
86
-	*
87
-	* Enables Gzip output compression for faster page loads.  When enabled,
88
-	* the Response class will test whether your server supports Gzip.
89
-	* Even if it does, however, not all browsers support compression
90
-	* so enable only if you are reasonably sure your visitors can handle it.
91
-	*
92
-	* This is only used if "zlib.output_compression" is turned off in your php configuration.
93
-	* Please do not use it together with httpd-level output compression.
94
-	*
95
-	* IMPORTANT NOTE:  If you are getting a blank page when compression is enabled it
96
-	* means you are prematurely outputting something to your browser. It could
97
-	* even be a line of whitespace at the end of one of your scripts. For
98
-	* compression to work, nothing can be sent before the output buffer is called
99
-	* by the Response class.  Do not 'echo' any values with compression enabled.
100
-	*/
101
-	$config['compress_output'] = false;
84
+    /**
85
+     * Compress the output before send to browser
86
+     *
87
+     * Enables Gzip output compression for faster page loads.  When enabled,
88
+     * the Response class will test whether your server supports Gzip.
89
+     * Even if it does, however, not all browsers support compression
90
+     * so enable only if you are reasonably sure your visitors can handle it.
91
+     *
92
+     * This is only used if "zlib.output_compression" is turned off in your php configuration.
93
+     * Please do not use it together with httpd-level output compression.
94
+     *
95
+     * IMPORTANT NOTE:  If you are getting a blank page when compression is enabled it
96
+     * means you are prematurely outputting something to your browser. It could
97
+     * even be a line of whitespace at the end of one of your scripts. For
98
+     * compression to work, nothing can be sent before the output buffer is called
99
+     * by the Response class.  Do not 'echo' any values with compression enabled.
100
+     */
101
+    $config['compress_output'] = false;
102 102
 
103
-	/*+---------------------------------------------------------------+
103
+    /*+---------------------------------------------------------------+
104 104
 	* Language configuration section
105 105
 	+------------------------------------------------------------------+
106 106
 	*/
107
-	/**
108
-	 * list of available supported language
109
-	 * array(
110
-	 * 		'lang_key' => 'human readable'
111
-	 * )
112
-	 */
113
-	$config['languages'] = array('en' => 'english');
107
+    /**
108
+     * list of available supported language
109
+     * array(
110
+     * 		'lang_key' => 'human readable'
111
+     * )
112
+     */
113
+    $config['languages'] = array('en' => 'english');
114 114
 
115
-	/**
116
-	 * the default language to use if can not find the client language
117
-	 * need match with the array key of the supported languages
118
-	 */
119
-	$config['default_language'] = 'en'; //en = english, fr = french
115
+    /**
116
+     * the default language to use if can not find the client language
117
+     * need match with the array key of the supported languages
118
+     */
119
+    $config['default_language'] = 'en'; //en = english, fr = french
120 120
 
121
-	/**
122
-	 * the name of cookie used to store the client language
123
-	 */
124
-	$config['language_cookie_name'] = 'cookie_lang';
121
+    /**
122
+     * the name of cookie used to store the client language
123
+     */
124
+    $config['language_cookie_name'] = 'cookie_lang';
125 125
 
126 126
 
127
-	/*+---------------------------------------------------------------+
127
+    /*+---------------------------------------------------------------+
128 128
 	* Logs configuration section
129 129
 	+------------------------------------------------------------------+
130 130
 	*/
131 131
 	
132
-	/** 
133
-	* The log level
134
-	*
135
-	* The valid level are: OFF, NONE, FATAL, ERROR, WARNING, WARN, INFO, DEBUG, ALL
136
-	*
137
-	* 'OFF' or 'NONE' = do not save log
138
-	* 'FATAL' = enable log for fatal level and above (FATAL)
139
-	* 'ERROR' = enable log for error level and above (ERROR, FATAL)
140
-	* 'WARNING' or WARN = enable log for warning level and above (WARNING, ERROR, FATAL)
141
-	* 'INFO' = enable log for info level and above (INFO, WARNING, ERROR, FATAL)
142
-	* 'DEBUG' = enable log for debug level and above (DEBUG, INFO, WARNING, ERROR, FATAL)
143
-	* 'ALL' = enable log for all level
144
-	*
145
-	* The default value is NONE if the config value is: null, '', 0, false
146
-	* 
147
-	* Note: in production environment it's recommand to set the log level to 'WARNING' if not in small
148
-	* of time the log file size will increase very fast and will cost the application performance
149
-	* and also the filesystem usage of your server.
150
-	*/
151
-	$config['log_level'] = 'NONE';
132
+    /** 
133
+     * The log level
134
+     *
135
+     * The valid level are: OFF, NONE, FATAL, ERROR, WARNING, WARN, INFO, DEBUG, ALL
136
+     *
137
+     * 'OFF' or 'NONE' = do not save log
138
+     * 'FATAL' = enable log for fatal level and above (FATAL)
139
+     * 'ERROR' = enable log for error level and above (ERROR, FATAL)
140
+     * 'WARNING' or WARN = enable log for warning level and above (WARNING, ERROR, FATAL)
141
+     * 'INFO' = enable log for info level and above (INFO, WARNING, ERROR, FATAL)
142
+     * 'DEBUG' = enable log for debug level and above (DEBUG, INFO, WARNING, ERROR, FATAL)
143
+     * 'ALL' = enable log for all level
144
+     *
145
+     * The default value is NONE if the config value is: null, '', 0, false
146
+     * 
147
+     * Note: in production environment it's recommand to set the log level to 'WARNING' if not in small
148
+     * of time the log file size will increase very fast and will cost the application performance
149
+     * and also the filesystem usage of your server.
150
+     */
151
+    $config['log_level'] = 'NONE';
152 152
 
153 153
 
154
-	/**
155
-	* The path to log directory
156
-	* 
157
-	* The path that the log data will be saved ending with de "/" or "\", leave empty if you
158
-	* want use the default configuration
159
-	* warning : if set, this directory must exist and will be writable and owned by the web server
160
-	* else the default value will be used i.e the constant LOG_PATH
161
-	* for security raison this directory must be outside of the document root of your
162
-	* website.
163
-	*/	
164
-	$config['log_save_path'] = '';
154
+    /**
155
+     * The path to log directory
156
+     * 
157
+     * The path that the log data will be saved ending with de "/" or "\", leave empty if you
158
+     * want use the default configuration
159
+     * warning : if set, this directory must exist and will be writable and owned by the web server
160
+     * else the default value will be used i.e the constant LOG_PATH
161
+     * for security raison this directory must be outside of the document root of your
162
+     * website.
163
+     */	
164
+    $config['log_save_path'] = '';
165 165
 	
166
-	/**
167
-	* The logger name to use for the log
168
-	* 
169
-	* If this config is set so means only log message with this or these logger(s) will be saved
170
-	*
171
-	* Example:
172
-	* $config['log_logger_name'] = array('MY_LOGGER1', 'MY_LOGGER2'); //only log message with MY_LOGGER1 or MY_LOGGER2 will be saved in file.
173
-	*/	
174
-	$config['log_logger_name'] = array();
166
+    /**
167
+     * The logger name to use for the log
168
+     * 
169
+     * If this config is set so means only log message with this or these logger(s) will be saved
170
+     *
171
+     * Example:
172
+     * $config['log_logger_name'] = array('MY_LOGGER1', 'MY_LOGGER2'); //only log message with MY_LOGGER1 or MY_LOGGER2 will be saved in file.
173
+     */	
174
+    $config['log_logger_name'] = array();
175 175
 	
176 176
 	
177
-	/*+---------------------------------------------------------------+
177
+    /*+---------------------------------------------------------------+
178 178
 	* Session configuration section
179 179
 	+------------------------------------------------------------------+
180 180
 	*/
181 181
 	
182
-	/**
183
-	* The session name 
184
-	*
185
-	* By default is PHPSESSID. this must be alpha-numerical characters
186
-	*/
187
-	$config['session_name'] = 'PHPSESSID';
182
+    /**
183
+     * The session name 
184
+     *
185
+     * By default is PHPSESSID. this must be alpha-numerical characters
186
+     */
187
+    $config['session_name'] = 'PHPSESSID';
188 188
 	
189
-	/**
190
-	* Session save path
191
-	*
192
-	* The path that the session data will be saved, leave empty if you
193
-	* want use the default configuration in the php.ini
194
-	* warning : if set, this directory must exist and will be writable and owned by the web server
195
-	* for security raison this directory must be outside of the document root of your
196
-	* website.
197
-	* Note: if the session handler is "database" the session_save_path is the model name to use
198
-	*/
199
-	$config['session_save_path'] = '';
189
+    /**
190
+     * Session save path
191
+     *
192
+     * The path that the session data will be saved, leave empty if you
193
+     * want use the default configuration in the php.ini
194
+     * warning : if set, this directory must exist and will be writable and owned by the web server
195
+     * for security raison this directory must be outside of the document root of your
196
+     * website.
197
+     * Note: if the session handler is "database" the session_save_path is the model name to use
198
+     */
199
+    $config['session_save_path'] = '';
200 200
 
201
-	/**
202
-	* Session handler
203
-	*
204
-	* The session handler that we will use to manage the session.
205
-	* currently the possible values are "files", "database".
206
-	*/
207
-	$config['session_handler'] = 'files';
201
+    /**
202
+     * Session handler
203
+     *
204
+     * The session handler that we will use to manage the session.
205
+     * currently the possible values are "files", "database".
206
+     */
207
+    $config['session_handler'] = 'files';
208 208
 	
209
-	/**
210
-	* Session secret
211
-	*
212
-	* This is used to hash the session data if the config "session_handler" is set to "database"
213
-	* warning : do not change this value until you already set
214
-	* for security raison use the very complicated value include $%)@^&^\''\'\'
215
-	* NOTE: this value is an base64 so you need use the tool that generate it, like
216
-	*  PHP function base64_encode()
217
-	*/
218
-	$config['session_secret'] = '';
209
+    /**
210
+     * Session secret
211
+     *
212
+     * This is used to hash the session data if the config "session_handler" is set to "database"
213
+     * warning : do not change this value until you already set
214
+     * for security raison use the very complicated value include $%)@^&^\''\'\'
215
+     * NOTE: this value is an base64 so you need use the tool that generate it, like
216
+     *  PHP function base64_encode()
217
+     */
218
+    $config['session_secret'] = '';
219 219
 
220
-	/**
221
-	 * number of second that consider the session already expire
222
-	 */
223
-	$config['session_inactivity_time'] = 600; //in second
220
+    /**
221
+     * number of second that consider the session already expire
222
+     */
223
+    $config['session_inactivity_time'] = 600; //in second
224 224
 
225
-	/**
226
-	* Session cookie lifetime
227
-	*
228
-	* The cookie lifetime that the session will be dropped in seconds, leave 0 if you want
229
-	* the cookie expire after the browser is closed
230
-	*/
231
-	$config['session_cookie_lifetime'] = 0;
225
+    /**
226
+     * Session cookie lifetime
227
+     *
228
+     * The cookie lifetime that the session will be dropped in seconds, leave 0 if you want
229
+     * the cookie expire after the browser is closed
230
+     */
231
+    $config['session_cookie_lifetime'] = 0;
232 232
 	
233
-	/**
234
-	* Session cookie path
235
-	*
236
-	* The path to your website that the cookie is available "/" means all path is available
237
-	* example : /mysubdirectory => available in http://www.mysite.com/mysubdirectory
238
-	*/
239
-	$config['session_cookie_path'] = '/';
233
+    /**
234
+     * Session cookie path
235
+     *
236
+     * The path to your website that the cookie is available "/" means all path is available
237
+     * example : /mysubdirectory => available in http://www.mysite.com/mysubdirectory
238
+     */
239
+    $config['session_cookie_path'] = '/';
240 240
 	
241
-	/** 
242
-	* Session cookie domain
243
-	*
244
-	* The domain of your website that the cookie is available if you want the cookie is available
245
-	* in all your subdomain use this dot before the domain name for example ".mysite.com".
246
-	* leave empty if you want use the default configuration
247
-	*/
248
-	$config['session_cookie_domain'] = '';
241
+    /** 
242
+     * Session cookie domain
243
+     *
244
+     * The domain of your website that the cookie is available if you want the cookie is available
245
+     * in all your subdomain use this dot before the domain name for example ".mysite.com".
246
+     * leave empty if you want use the default configuration
247
+     */
248
+    $config['session_cookie_domain'] = '';
249 249
 	
250
-	/**
251
-	* Session cookie secure
252
-	* 
253
-	* If your website use SSL i.e https, you set "true" for this configuration, so the cookie
254
-	* is available only if the website use the secure connection else set this value to "false"
255
-	*/
256
-	$config['session_cookie_secure'] = false;
250
+    /**
251
+     * Session cookie secure
252
+     * 
253
+     * If your website use SSL i.e https, you set "true" for this configuration, so the cookie
254
+     * is available only if the website use the secure connection else set this value to "false"
255
+     */
256
+    $config['session_cookie_secure'] = false;
257 257
 	
258 258
 
259
-	/*+---------------------------------------------------------------+
259
+    /*+---------------------------------------------------------------+
260 260
 	* CSRF configuration section
261 261
 	+------------------------------------------------------------------+
262 262
 	*/
263 263
 	
264
-	/**
265
-	 * CSRF status
266
-	 *
267
-	 * if you would to use the CSRF (that we recommand you), set this key to true
268
-	 */
269
-	$config['csrf_enable'] = false;
264
+    /**
265
+     * CSRF status
266
+     *
267
+     * if you would to use the CSRF (that we recommand you), set this key to true
268
+     */
269
+    $config['csrf_enable'] = false;
270 270
 
271
-	/**
272
-	 * CSRF key
273
-	 *
274
-	 * the key used to store the csrf data
275
-	 */
276
-	$config['csrf_key'] = 'csrf_key';
271
+    /**
272
+     * CSRF key
273
+     *
274
+     * the key used to store the csrf data
275
+     */
276
+    $config['csrf_key'] = 'csrf_key';
277 277
 
278
-	/**
279
-	 * CSRF expire
280
-	 *
281
-	 * expire time in seconds of the CSRF data
282
-	 */
283
-	$config['csrf_expire'] = 120;
278
+    /**
279
+     * CSRF expire
280
+     *
281
+     * expire time in seconds of the CSRF data
282
+     */
283
+    $config['csrf_expire'] = 120;
284 284
 	
285 285
 	
286
-	/*+---------------------------------------------------------------+
286
+    /*+---------------------------------------------------------------+
287 287
 	* Cache configuration section
288 288
 	+------------------------------------------------------------------+
289 289
 	*/
290 290
 	
291
-	/**
292
-	 * Cache status
293
-	 *
294
-	 * If you would to use the cache functionnality set this value to true
295
-	 */
296
-	$config['cache_enable'] = false;
291
+    /**
292
+     * Cache status
293
+     *
294
+     * If you would to use the cache functionnality set this value to true
295
+     */
296
+    $config['cache_enable'] = false;
297 297
 	
298
-	/**
299
-	 * Cache Time To Live
300
-	 *
301
-	 * expire time in seconds of the cache data
302
-	 */
303
-	$config['cache_ttl'] = 120; //in second
298
+    /**
299
+     * Cache Time To Live
300
+     *
301
+     * expire time in seconds of the cache data
302
+     */
303
+    $config['cache_ttl'] = 120; //in second
304 304
 
305
-	/**
306
-	* Cache handler class
307
-	*
308
-	* The cache handler class inside (CORE_CLASSES_CACHE_PATH, LIBRARY_PATH) directories that implements 
309
-	* the interface "CacheInterface" that we will use to manage the cache.
310
-	* currently the possible values are "FileCache", "ApcCache".
311
-	*/
312
-	$config['cache_handler'] = 'FileCache';
305
+    /**
306
+     * Cache handler class
307
+     *
308
+     * The cache handler class inside (CORE_CLASSES_CACHE_PATH, LIBRARY_PATH) directories that implements 
309
+     * the interface "CacheInterface" that we will use to manage the cache.
310
+     * currently the possible values are "FileCache", "ApcCache".
311
+     */
312
+    $config['cache_handler'] = 'FileCache';
313 313
 	
314 314
 	
315
-	/*+---------------------------------------------------------------+
315
+    /*+---------------------------------------------------------------+
316 316
 	* White list IP access configuration section
317 317
 	+------------------------------------------------------------------+
318 318
 	*/
319 319
 	
320
-	/**
321
-	 * White list ip status
322
-	 *
323
-	 * if you would to use the white list ip access, set this key to true
324
-	 */
325
-	$config['white_list_ip_enable'] = false;
320
+    /**
321
+     * White list ip status
322
+     *
323
+     * if you would to use the white list ip access, set this key to true
324
+     */
325
+    $config['white_list_ip_enable'] = false;
326 326
 	
327
-	/**
328
-	 * White listed ip addresses
329
-	 *
330
-	 * add the allowed ip address list to access this application.
331
-	 * You can use the wildcard address
332
-	 * @example: '18.90.09.*', '10.*.*.*', '*'
333
-	 * 
334
-	 */
335
-	$config['white_list_ip_addresses'] = array('127.0.0.1', '::1');
327
+    /**
328
+     * White listed ip addresses
329
+     *
330
+     * add the allowed ip address list to access this application.
331
+     * You can use the wildcard address
332
+     * @example: '18.90.09.*', '10.*.*.*', '*'
333
+     * 
334
+     */
335
+    $config['white_list_ip_addresses'] = array('127.0.0.1', '::1');
336 336
 
337
-	
338 337
\ No newline at end of file
338
+    
339 339
\ No newline at end of file
Please login to merge, or discard this patch.
core/classes/database/Database.php 3 patches
Indentation   +356 added lines, -356 removed lines patch added patch discarded remove patch
@@ -1,119 +1,119 @@  discard block
 block discarded – undo
1 1
 <?php
2 2
     defined('ROOT_PATH') || exit('Access denied');
3
-  /**
4
-   * TNH Framework
5
-   *
6
-   * A simple PHP framework using HMVC architecture
7
-   *
8
-   * This content is released under the GNU GPL License (GPL)
9
-   *
10
-   * Copyright (C) 2017 Tony NGUEREZA
11
-   *
12
-   * This program is free software; you can redistribute it and/or
13
-   * modify it under the terms of the GNU General Public License
14
-   * as published by the Free Software Foundation; either version 3
15
-   * of the License, or (at your option) any later version.
16
-   *
17
-   * This program is distributed in the hope that it will be useful,
18
-   * but WITHOUT ANY WARRANTY; without even the implied warranty of
19
-   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
20
-   * GNU General Public License for more details.
21
-   *
22
-   * You should have received a copy of the GNU General Public License
23
-   * along with this program; if not, write to the Free Software
24
-   * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
25
-  */
26
-  class Database{
3
+    /**
4
+     * TNH Framework
5
+     *
6
+     * A simple PHP framework using HMVC architecture
7
+     *
8
+     * This content is released under the GNU GPL License (GPL)
9
+     *
10
+     * Copyright (C) 2017 Tony NGUEREZA
11
+     *
12
+     * This program is free software; you can redistribute it and/or
13
+     * modify it under the terms of the GNU General Public License
14
+     * as published by the Free Software Foundation; either version 3
15
+     * of the License, or (at your option) any later version.
16
+     *
17
+     * This program is distributed in the hope that it will be useful,
18
+     * but WITHOUT ANY WARRANTY; without even the implied warranty of
19
+     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
20
+     * GNU General Public License for more details.
21
+     *
22
+     * You should have received a copy of the GNU General Public License
23
+     * along with this program; if not, write to the Free Software
24
+     * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
25
+     */
26
+    class Database{
27 27
 	
28
-  	/**
29
-  	 * The PDO instance
30
-  	 * @var object
31
-  	*/
28
+        /**
29
+         * The PDO instance
30
+         * @var object
31
+         */
32 32
     private $pdo                 = null;
33 33
     
34
-  	/**
35
-  	 * The database name used for the application
36
-  	 * @var string
37
-  	*/
38
-	  private $databaseName        = null;
34
+        /**
35
+         * The database name used for the application
36
+         * @var string
37
+         */
38
+        private $databaseName        = null;
39 39
 	
40
-  	/**
41
-  	 * The number of rows returned by the last query
42
-  	 * @var int
43
-  	*/
40
+        /**
41
+         * The number of rows returned by the last query
42
+         * @var int
43
+         */
44 44
     private $numRows             = 0;
45 45
 	
46
-  	/**
47
-  	 * The last insert id for the primary key column that have auto increment or sequence
48
-  	 * @var mixed
49
-  	*/
46
+        /**
47
+         * The last insert id for the primary key column that have auto increment or sequence
48
+         * @var mixed
49
+         */
50 50
     private $insertId            = null;
51 51
 	
52
-  	/**
53
-  	 * The full SQL query statment after build for each command
54
-  	 * @var string
55
-  	*/
52
+        /**
53
+         * The full SQL query statment after build for each command
54
+         * @var string
55
+         */
56 56
     private $query               = null;
57 57
 	
58
-  	/**
59
-  	 * The result returned for the last query
60
-  	 * @var mixed
61
-  	*/
58
+        /**
59
+         * The result returned for the last query
60
+         * @var mixed
61
+         */
62 62
     private $result              = array();
63 63
 	
64
-  	/**
65
-  	 * The cache default time to live in second. 0 means no need to use the cache feature
66
-  	 * @var int
67
-  	*/
68
-  	private $cacheTtl             = 0;
64
+        /**
65
+         * The cache default time to live in second. 0 means no need to use the cache feature
66
+         * @var int
67
+         */
68
+        private $cacheTtl             = 0;
69 69
 	
70
-  	/**
71
-  	 * The cache current time to live. 0 means no need to use the cache feature
72
-  	 * @var int
73
-  	*/
70
+        /**
71
+         * The cache current time to live. 0 means no need to use the cache feature
72
+         * @var int
73
+         */
74 74
     private $temporaryCacheTtl   = 0;
75 75
 	
76
-  	/**
77
-  	 * The number of executed query for the current request
78
-  	 * @var int
79
-  	*/
76
+        /**
77
+         * The number of executed query for the current request
78
+         * @var int
79
+         */
80 80
     private $queryCount          = 0;
81 81
 	
82
-  	/**
83
-  	 * The default data to be used in the statments query INSERT, UPDATE
84
-  	 * @var array
85
-  	*/
82
+        /**
83
+         * The default data to be used in the statments query INSERT, UPDATE
84
+         * @var array
85
+         */
86 86
     private $data                = array();
87 87
 	
88
-  	/**
89
-  	 * The database configuration
90
-  	 * @var array
91
-  	*/
88
+        /**
89
+         * The database configuration
90
+         * @var array
91
+         */
92 92
     private $config              = array();
93 93
 	
94
-  	/**
95
-  	 * The logger instance
96
-  	 * @var object
97
-  	 */
94
+        /**
95
+         * The logger instance
96
+         * @var object
97
+         */
98 98
     private $logger              = null;
99 99
 
100 100
     /**
101
-    * The cache instance
102
-    * @var object
103
-    */
101
+     * The cache instance
102
+     * @var object
103
+     */
104 104
     private $cacheInstance       = null;
105 105
 
106 106
     
107
-  	/**
108
-    * The DatabaseQueryBuilder instance
109
-    * @var object
110
-    */
107
+        /**
108
+         * The DatabaseQueryBuilder instance
109
+         * @var object
110
+         */
111 111
     private $queryBuilder        = null;
112 112
     
113 113
     /**
114
-    * The DatabaseQueryRunner instance
115
-    * @var object
116
-    */
114
+     * The DatabaseQueryRunner instance
115
+     * @var object
116
+     */
117 117
     private $queryRunner         = null;
118 118
 
119 119
 
@@ -126,7 +126,7 @@  discard block
 block discarded – undo
126 126
         //Set Log instance to use
127 127
         $this->setLoggerFromParamOrCreate(null);
128 128
 		
129
-    		//Set DatabaseQueryBuilder instance to use
129
+            //Set DatabaseQueryBuilder instance to use
130 130
         $this->setDependencyInstanceFromParamOrCreate('queryBuilder', null, 'DatabaseQueryBuilder', 'classes/database');
131 131
        
132 132
         //Set DatabaseQueryRunner instance to use
@@ -144,8 +144,8 @@  discard block
 block discarded – undo
144 144
      * @return bool 
145 145
      */
146 146
     public function connect(){
147
-      $config = $this->getDatabaseConfiguration();
148
-      if (! empty($config)){
147
+        $config = $this->getDatabaseConfiguration();
148
+        if (! empty($config)){
149 149
         try{
150 150
             $this->pdo = new PDO($this->getDsnValueFromConfig(), $config['username'], $config['password']);
151 151
             $this->pdo->exec("SET NAMES '" . $config['charset'] . "' COLLATE '" . $config['collation'] . "'");
@@ -156,14 +156,14 @@  discard block
 block discarded – undo
156 156
             $this->updateQueryBuilderAndRunnerProperties();
157 157
 
158 158
             return is_object($this->pdo);
159
-          }
160
-          catch (PDOException $e){
159
+            }
160
+            catch (PDOException $e){
161 161
             $this->logger->fatal($e->getMessage());
162 162
             show_error('Cannot connect to Database.');
163 163
             return false;
164
-          }
165
-      }
166
-      return false;
164
+            }
165
+        }
166
+        return false;
167 167
     }
168 168
 
169 169
 
@@ -172,7 +172,7 @@  discard block
 block discarded – undo
172 172
      * @return int
173 173
      */
174 174
     public function numRows(){
175
-      return $this->numRows;
175
+        return $this->numRows;
176 176
     }
177 177
 
178 178
     /**
@@ -180,7 +180,7 @@  discard block
 block discarded – undo
180 180
      * @return mixed
181 181
      */
182 182
     public function insertId(){
183
-      return $this->insertId;
183
+        return $this->insertId;
184 184
     }
185 185
 
186 186
 
@@ -191,13 +191,13 @@  discard block
 block discarded – undo
191 191
      * @return mixed       the query SQL string or the record result
192 192
      */
193 193
     public function get($returnSQLQueryOrResultType = false){
194
-      $this->queryBuilder->limit(1);
195
-      $query = $this->getAll(true);
196
-      if ($returnSQLQueryOrResultType === true){
194
+        $this->queryBuilder->limit(1);
195
+        $query = $this->getAll(true);
196
+        if ($returnSQLQueryOrResultType === true){
197 197
         return $query;
198
-      } else {
198
+        } else {
199 199
         return $this->query($query, false, $returnSQLQueryOrResultType == 'array');
200
-      }
200
+        }
201 201
     }
202 202
 
203 203
     /**
@@ -207,11 +207,11 @@  discard block
 block discarded – undo
207 207
      * @return mixed       the query SQL string or the record result
208 208
      */
209 209
     public function getAll($returnSQLQueryOrResultType = false){
210
-	   $query = $this->queryBuilder->getQuery();
211
-	   if ($returnSQLQueryOrResultType === true){
212
-      	return $query;
213
-      }
214
-      return $this->query($query, true, $returnSQLQueryOrResultType == 'array');
210
+        $query = $this->queryBuilder->getQuery();
211
+        if ($returnSQLQueryOrResultType === true){
212
+            return $query;
213
+        }
214
+        return $this->query($query, true, $returnSQLQueryOrResultType == 'array');
215 215
     }
216 216
 
217 217
     /**
@@ -221,19 +221,19 @@  discard block
 block discarded – undo
221 221
      * @return mixed          the insert id of the new record or null
222 222
      */
223 223
     public function insert($data = array(), $escape = true){
224
-      if (empty($data) && ! empty($this->data)){
224
+        if (empty($data) && ! empty($this->data)){
225 225
         //as when using $this->setData() may be the data already escaped
226 226
         $escape = false;
227 227
         $data = $this->data;
228
-      }
229
-      $query = $this->queryBuilder->insert($data, $escape)->getQuery();
230
-      $result = $this->query($query);
231
-      if ($result){
228
+        }
229
+        $query = $this->queryBuilder->insert($data, $escape)->getQuery();
230
+        $result = $this->query($query);
231
+        if ($result){
232 232
         $this->insertId = $this->pdo->lastInsertId();
233
-		    //if the table doesn't have the auto increment field or sequence, the value of 0 will be returned 
233
+            //if the table doesn't have the auto increment field or sequence, the value of 0 will be returned 
234 234
         return ! ($this->insertId) ? true : $this->insertId;
235
-      }
236
-      return false;
235
+        }
236
+        return false;
237 237
     }
238 238
 
239 239
     /**
@@ -243,13 +243,13 @@  discard block
 block discarded – undo
243 243
      * @return mixed          the update status
244 244
      */
245 245
     public function update($data = array(), $escape = true){
246
-      if (empty($data) && ! empty($this->data)){
246
+        if (empty($data) && ! empty($this->data)){
247 247
         //as when using $this->setData() may be the data already escaped
248 248
         $escape = false;
249 249
         $data = $this->data;
250
-      }
251
-      $query = $this->queryBuilder->update($data, $escape)->getQuery();
252
-      return $this->query($query);
250
+        }
251
+        $query = $this->queryBuilder->update($data, $escape)->getQuery();
252
+        return $this->query($query);
253 253
     }
254 254
 
255 255
     /**
@@ -257,8 +257,8 @@  discard block
 block discarded – undo
257 257
      * @return mixed the delete status
258 258
      */
259 259
     public function delete(){
260
-		  $query = $this->queryBuilder->delete()->getQuery();
261
-    	return $this->query($query);
260
+            $query = $this->queryBuilder->delete()->getQuery();
261
+        return $this->query($query);
262 262
     }
263 263
 
264 264
     /**
@@ -267,17 +267,17 @@  discard block
 block discarded – undo
267 267
      * @return object        the current Database instance
268 268
      */
269 269
     public function setCache($ttl = 0){
270
-      $this->cacheTtl = $ttl;
271
-      $this->temporaryCacheTtl = $ttl;
272
-      return $this;
270
+        $this->cacheTtl = $ttl;
271
+        $this->temporaryCacheTtl = $ttl;
272
+        return $this;
273 273
     }
274 274
 	
275
-	/**
276
-	 * Enabled cache temporary for the current query not globally	
277
-	 * @param  integer $ttl the cache time to live in second
278
-	 * @return object        the current Database instance
279
-	 */
280
-  	public function cached($ttl = 0){
275
+    /**
276
+     * Enabled cache temporary for the current query not globally	
277
+     * @param  integer $ttl the cache time to live in second
278
+     * @return object        the current Database instance
279
+     */
280
+        public function cached($ttl = 0){
281 281
         $this->temporaryCacheTtl = $ttl;
282 282
         return $this;
283 283
     }
@@ -290,11 +290,11 @@  discard block
 block discarded – undo
290 290
      * need escaped
291 291
      */
292 292
     public function escape($data, $escaped = true){
293
-      $data = trim($data);
294
-      if($escaped){
293
+        $data = trim($data);
294
+        if($escaped){
295 295
         return $this->pdo->quote($data);
296
-      }
297
-      return $data; 
296
+        }
297
+        return $data; 
298 298
     }
299 299
 
300 300
     /**
@@ -302,7 +302,7 @@  discard block
 block discarded – undo
302 302
      * @return int
303 303
      */
304 304
     public function queryCount(){
305
-      return $this->queryCount;
305
+        return $this->queryCount;
306 306
     }
307 307
 
308 308
     /**
@@ -310,7 +310,7 @@  discard block
 block discarded – undo
310 310
      * @return string
311 311
      */
312 312
     public function getQuery(){
313
-      return $this->query;
313
+        return $this->query;
314 314
     }
315 315
 
316 316
     /**
@@ -318,7 +318,7 @@  discard block
 block discarded – undo
318 318
      * @return string
319 319
      */
320 320
     public function getDatabaseName(){
321
-      return $this->databaseName;
321
+        return $this->databaseName;
322 322
     }
323 323
 
324 324
     /**
@@ -326,17 +326,17 @@  discard block
 block discarded – undo
326 326
      * @return object
327 327
      */
328 328
     public function getPdo(){
329
-      return $this->pdo;
329
+        return $this->pdo;
330 330
     }
331 331
 
332 332
     /**
333 333
      * Set the PDO instance
334 334
      * @param object $pdo the pdo object
335
-	 * @return object Database
335
+     * @return object Database
336 336
      */
337 337
     public function setPdo(PDO $pdo){
338
-      $this->pdo = $pdo;
339
-      return $this;
338
+        $this->pdo = $pdo;
339
+        return $this;
340 340
     }
341 341
 
342 342
 
@@ -345,44 +345,44 @@  discard block
 block discarded – undo
345 345
      * @return Log
346 346
      */
347 347
     public function getLogger(){
348
-      return $this->logger;
348
+        return $this->logger;
349 349
     }
350 350
 
351 351
     /**
352 352
      * Set the log instance
353 353
      * @param Log $logger the log object
354
-	 * @return object Database
354
+     * @return object Database
355 355
      */
356 356
     public function setLogger($logger){
357
-      $this->logger = $logger;
358
-      return $this;
357
+        $this->logger = $logger;
358
+        return $this;
359 359
     }
360 360
 
361
-     /**
362
-     * Return the cache instance
363
-     * @return CacheInterface
364
-     */
361
+        /**
362
+         * Return the cache instance
363
+         * @return CacheInterface
364
+         */
365 365
     public function getCacheInstance(){
366
-      return $this->cacheInstance;
366
+        return $this->cacheInstance;
367 367
     }
368 368
 
369 369
     /**
370 370
      * Set the cache instance
371 371
      * @param CacheInterface $cache the cache object
372
-	 * @return object Database
372
+     * @return object Database
373 373
      */
374 374
     public function setCacheInstance($cache){
375
-      $this->cacheInstance = $cache;
376
-      return $this;
375
+        $this->cacheInstance = $cache;
376
+        return $this;
377 377
     }
378 378
 	
379 379
 	
380
-	   /**
381
-     * Return the DatabaseQueryBuilder instance
382
-     * @return object DatabaseQueryBuilder
383
-     */
380
+        /**
381
+         * Return the DatabaseQueryBuilder instance
382
+         * @return object DatabaseQueryBuilder
383
+         */
384 384
     public function getQueryBuilder(){
385
-      return $this->queryBuilder;
385
+        return $this->queryBuilder;
386 386
     }
387 387
 
388 388
     /**
@@ -390,8 +390,8 @@  discard block
 block discarded – undo
390 390
      * @param object DatabaseQueryBuilder $queryBuilder the DatabaseQueryBuilder object
391 391
      */
392 392
     public function setQueryBuilder(DatabaseQueryBuilder $queryBuilder){
393
-      $this->queryBuilder = $queryBuilder;
394
-      return $this;
393
+        $this->queryBuilder = $queryBuilder;
394
+        return $this;
395 395
     }
396 396
     
397 397
     /**
@@ -399,7 +399,7 @@  discard block
 block discarded – undo
399 399
      * @return object DatabaseQueryRunner
400 400
      */
401 401
     public function getQueryRunner(){
402
-      return $this->queryRunner;
402
+        return $this->queryRunner;
403 403
     }
404 404
 
405 405
     /**
@@ -407,8 +407,8 @@  discard block
 block discarded – undo
407 407
      * @param object DatabaseQueryRunner $queryRunner the DatabaseQueryRunner object
408 408
      */
409 409
     public function setQueryRunner(DatabaseQueryRunner $queryRunner){
410
-      $this->queryRunner = $queryRunner;
411
-      return $this;
410
+        $this->queryRunner = $queryRunner;
411
+        return $this;
412 412
     }
413 413
 
414 414
     /**
@@ -416,7 +416,7 @@  discard block
 block discarded – undo
416 416
      * @return array
417 417
      */
418 418
     public function getData(){
419
-      return $this->data;
419
+        return $this->data;
420 420
     }
421 421
 
422 422
     /**
@@ -427,62 +427,62 @@  discard block
 block discarded – undo
427 427
      * @return object        the current Database instance
428 428
      */
429 429
     public function setData($key, $value = null, $escape = true){
430
-  	  if (is_array($key)){
431
-    		foreach($key as $k => $v){
432
-    			$this->setData($k, $v, $escape);
433
-    		}	
434
-  	  } else {
430
+        if (is_array($key)){
431
+            foreach($key as $k => $v){
432
+                $this->setData($k, $v, $escape);
433
+            }	
434
+        } else {
435 435
         $this->data[$key] = $this->escape($value, $escape);
436
-  	  }
437
-      return $this;
436
+        }
437
+        return $this;
438 438
     }
439 439
 
440
-     /**
441
-     * Execute an SQL query
442
-     * @param  string  $query the query SQL string
443
-     * @param  boolean $returnAsList  indicate whether to return all record or just one row 
444
-     * @param  boolean $returnAsArray return the result as array or not
445
-     * @return mixed         the query result
446
-     */
440
+        /**
441
+         * Execute an SQL query
442
+         * @param  string  $query the query SQL string
443
+         * @param  boolean $returnAsList  indicate whether to return all record or just one row 
444
+         * @param  boolean $returnAsArray return the result as array or not
445
+         * @return mixed         the query result
446
+         */
447 447
     public function query($query, $returnAsList = true, $returnAsArray = false){
448
-      $this->reset();
449
-      $this->query = preg_replace('/\s\s+|\t\t+/', ' ', trim($query));
450
-      //If is the SELECT query
451
-      $isSqlSELECTQuery = stristr($this->query, 'SELECT');
448
+        $this->reset();
449
+        $this->query = preg_replace('/\s\s+|\t\t+/', ' ', trim($query));
450
+        //If is the SELECT query
451
+        $isSqlSELECTQuery = stristr($this->query, 'SELECT');
452 452
 
453
-      //cache expire time
454
-      $cacheExpire = $this->temporaryCacheTtl;
453
+        //cache expire time
454
+        $cacheExpire = $this->temporaryCacheTtl;
455 455
       
456
-      //return to the initial cache time
457
-      $this->temporaryCacheTtl = $this->cacheTtl;
456
+        //return to the initial cache time
457
+        $this->temporaryCacheTtl = $this->cacheTtl;
458 458
       
459
-      //config for cache
460
-      $cacheEnable = get_config('cache_enable');
459
+        //config for cache
460
+        $cacheEnable = get_config('cache_enable');
461 461
       
462
-      //the database cache content
463
-      $cacheContent = null;
462
+        //the database cache content
463
+        $cacheContent = null;
464 464
 
465
-      //if can use cache feature for this query
466
-      $dbCacheStatus = $cacheEnable && $cacheExpire > 0;
465
+        //if can use cache feature for this query
466
+        $dbCacheStatus = $cacheEnable && $cacheExpire > 0;
467 467
     
468
-      if ($dbCacheStatus && $isSqlSELECTQuery){
469
-          $this->logger->info('The cache is enabled for this query, try to get result from cache'); 
470
-          $cacheContent = $this->getCacheContentForQuery($query, $returnAsList, $returnAsArray);  
471
-      }
468
+        if ($dbCacheStatus && $isSqlSELECTQuery){
469
+            $this->logger->info('The cache is enabled for this query, try to get result from cache'); 
470
+            $cacheContent = $this->getCacheContentForQuery($query, $returnAsList, $returnAsArray);  
471
+        }
472 472
       
473
-      if (!$cacheContent){
474
-  	   	//count the number of query execution to server
473
+        if (!$cacheContent){
474
+                //count the number of query execution to server
475 475
         $this->queryCount++;
476 476
         
477 477
         $queryResult = $this->queryRunner->setQuery($query)
478
-                                          ->setReturnType($returnAsList)
479
-                                          ->setReturnAsArray($returnAsArray)
480
-                                          ->execute();
478
+                                            ->setReturnType($returnAsList)
479
+                                            ->setReturnAsArray($returnAsArray)
480
+                                            ->execute();
481 481
 
482 482
         if (!is_object($queryResult)){
483
-          $this->result = false;
484
-          $this->numRows = 0;
485
-          return $this->result;
483
+            $this->result = false;
484
+            $this->numRows = 0;
485
+            return $this->result;
486 486
         }
487 487
         $this->result  = $queryResult->getResult();
488 488
         $this->numRows = $queryResult->getNumRows();
@@ -490,72 +490,72 @@  discard block
 block discarded – undo
490 490
             $key = $this->getCacheKeyForQuery($this->query, $returnAsList, $returnAsArray);
491 491
             $this->setCacheContentForQuery($this->query, $key, $this->result, $cacheExpire);
492 492
         }
493
-      } else if ($isSqlSELECTQuery){
494
-          $this->logger->info('The result for query [' .$this->query. '] already cached use it');
495
-          $this->result = $cacheContent;
496
-          $this->numRows = count($this->result);
497
-      }
498
-      return $this->result;
499
-    }
500
-
501
-   /**
502
-    * Setting the database configuration using the configuration file and additional configuration from param
503
-    * @param array $overwriteConfig the additional configuration to overwrite with the existing one
504
-    * @param boolean $useConfigFile whether to use database configuration file
505
-    * @param boolean $autoConnect whether to connect to database after set the configuration
506
-	  * @return object Database
507
-    */
493
+        } else if ($isSqlSELECTQuery){
494
+            $this->logger->info('The result for query [' .$this->query. '] already cached use it');
495
+            $this->result = $cacheContent;
496
+            $this->numRows = count($this->result);
497
+        }
498
+        return $this->result;
499
+    }
500
+
501
+    /**
502
+     * Setting the database configuration using the configuration file and additional configuration from param
503
+     * @param array $overwriteConfig the additional configuration to overwrite with the existing one
504
+     * @param boolean $useConfigFile whether to use database configuration file
505
+     * @param boolean $autoConnect whether to connect to database after set the configuration
506
+     * @return object Database
507
+     */
508 508
     public function setDatabaseConfiguration(array $overwriteConfig = array(), $useConfigFile = true, $autoConnect = false){
509
-      $db = array();
510
-      if ($useConfigFile && file_exists(CONFIG_PATH . 'database.php')){
511
-          //here don't use require_once because somewhere user can create database instance directly
512
-          require CONFIG_PATH . 'database.php';
513
-      }
509
+        $db = array();
510
+        if ($useConfigFile && file_exists(CONFIG_PATH . 'database.php')){
511
+            //here don't use require_once because somewhere user can create database instance directly
512
+            require CONFIG_PATH . 'database.php';
513
+        }
514 514
       
515
-      //merge with the parameter  
516
-      $db = array_merge($db, $overwriteConfig);
515
+        //merge with the parameter  
516
+        $db = array_merge($db, $overwriteConfig);
517 517
       
518
-      //get the default configuration
519
-      $config = $this->getDatabaseDefaultConfiguration();
518
+        //get the default configuration
519
+        $config = $this->getDatabaseDefaultConfiguration();
520 520
 		  
521
-    	$config = array_merge($config, $db);
522
-    	//determine the port using the hostname like localhost:3307
523
-      //hostname will be "localhost", and port "3307"
524
-      $p = explode(':', $config['hostname']);
525
-  	  if (count($p) >= 2){
526
-  		  $config['hostname'] = $p[0];
527
-  		  $config['port'] = $p[1];
528
-  		}
521
+        $config = array_merge($config, $db);
522
+        //determine the port using the hostname like localhost:3307
523
+        //hostname will be "localhost", and port "3307"
524
+        $p = explode(':', $config['hostname']);
525
+        if (count($p) >= 2){
526
+            $config['hostname'] = $p[0];
527
+            $config['port'] = $p[1];
528
+            }
529 529
 		
530
-		 $this->databaseName = $config['database'];
531
-		 $this->config = $config;
532
-		 $this->logger->info(
533
-								'The database configuration are listed below: ' 
534
-								. stringfy_vars(array_merge(
535
-															$this->config, 
536
-															array('password' => string_hidden($this->config['password']))
537
-												))
538
-							);
539
-  	  if($autoConnect){
540
-    		 //Now connect to the database
541
-    		 $this->connect();
542
-  		}
543
-		 return $this;
544
-    }
545
-
546
-    /**
547
-   * Return the database configuration
548
-   * @return array
549
-   */
530
+            $this->databaseName = $config['database'];
531
+            $this->config = $config;
532
+            $this->logger->info(
533
+                                'The database configuration are listed below: ' 
534
+                                . stringfy_vars(array_merge(
535
+                                                            $this->config, 
536
+                                                            array('password' => string_hidden($this->config['password']))
537
+                                                ))
538
+                            );
539
+        if($autoConnect){
540
+                //Now connect to the database
541
+                $this->connect();
542
+            }
543
+            return $this;
544
+    }
545
+
546
+    /**
547
+     * Return the database configuration
548
+     * @return array
549
+     */
550 550
     public  function getDatabaseConfiguration(){
551
-      return $this->config;
551
+        return $this->config;
552 552
     }
553 553
 
554 554
     /**
555 555
      * Close the connexion
556 556
      */
557 557
     public function close(){
558
-      $this->pdo = null;
558
+        $this->pdo = null;
559 559
     }
560 560
 
561 561
     /**
@@ -563,16 +563,16 @@  discard block
 block discarded – undo
563 563
      * @return array
564 564
      */
565 565
     protected function getDatabaseDefaultConfiguration(){
566
-      return array(
567
-              'driver' => '',
568
-              'username' => '',
569
-              'password' => '',
570
-              'database' => '',
571
-              'hostname' => 'localhost',
572
-              'charset' => 'utf8',
573
-              'collation' => 'utf8_general_ci',
574
-              'prefix' => '',
575
-              'port' => ''
566
+        return array(
567
+                'driver' => '',
568
+                'username' => '',
569
+                'password' => '',
570
+                'database' => '',
571
+                'hostname' => 'localhost',
572
+                'charset' => 'utf8',
573
+                'collation' => 'utf8_general_ci',
574
+                'prefix' => '',
575
+                'port' => ''
576 576
             );
577 577
     }
578 578
 
@@ -581,18 +581,18 @@  discard block
 block discarded – undo
581 581
      * @return void
582 582
      */
583 583
     protected function updateQueryBuilderAndRunnerProperties(){
584
-       //update queryBuilder with some properties needed
585
-     if (is_object($this->queryBuilder)){
584
+        //update queryBuilder with some properties needed
585
+        if (is_object($this->queryBuilder)){
586 586
         $this->queryBuilder->setDriver($this->config['driver'])
587
-                           ->setPrefix($this->config['prefix'])
588
-                           ->setPdo($this->pdo);
589
-     }
587
+                            ->setPrefix($this->config['prefix'])
588
+                            ->setPdo($this->pdo);
589
+        }
590 590
 
591
-      //update queryRunner with some properties needed
592
-     if (is_object($this->queryRunner)){
591
+        //update queryRunner with some properties needed
592
+        if (is_object($this->queryRunner)){
593 593
         $this->queryRunner->setDriver($this->config['driver'])
594
-                          ->setPdo($this->pdo);
595
-     }
594
+                            ->setPdo($this->pdo);
595
+        }
596 596
     }
597 597
 	
598 598
 
@@ -601,21 +601,21 @@  discard block
 block discarded – undo
601 601
      * @return string|null the DSN string or null if can not find it
602 602
      */
603 603
     protected function getDsnValueFromConfig(){
604
-      $dsn = null;
605
-      $config = $this->getDatabaseConfiguration();
606
-      if (! empty($config)){
604
+        $dsn = null;
605
+        $config = $this->getDatabaseConfiguration();
606
+        if (! empty($config)){
607 607
         $driver = $config['driver'];
608 608
         $driverDsnMap = array(
609
-                              'mysql'  => $this->getDsnValueForDriver('mysql'),
610
-                              'pgsql'  => $this->getDsnValueForDriver('pgsql'),
611
-                              'sqlite' => $this->getDsnValueForDriver('sqlite'),
612
-                              'oracle' => $this->getDsnValueForDriver('oracle')
613
-                              );
609
+                                'mysql'  => $this->getDsnValueForDriver('mysql'),
610
+                                'pgsql'  => $this->getDsnValueForDriver('pgsql'),
611
+                                'sqlite' => $this->getDsnValueForDriver('sqlite'),
612
+                                'oracle' => $this->getDsnValueForDriver('oracle')
613
+                                );
614 614
         if (isset($driverDsnMap[$driver])){
615
-          $dsn = $driverDsnMap[$driver];
615
+            $dsn = $driverDsnMap[$driver];
616 616
         }
617
-      }    
618
-      return $dsn;
617
+        }    
618
+        return $dsn;
619 619
     }
620 620
 
621 621
     /**
@@ -624,32 +624,32 @@  discard block
 block discarded – undo
624 624
      * @return string|null         the dsn name
625 625
      */
626 626
     protected function getDsnValueForDriver($driver){
627
-      $dsn = '';
628
-      $config = $this->getDatabaseConfiguration();
629
-      if (empty($config)){
627
+        $dsn = '';
628
+        $config = $this->getDatabaseConfiguration();
629
+        if (empty($config)){
630 630
         return null;
631
-      }
632
-      switch ($driver) {
631
+        }
632
+        switch ($driver) {
633 633
         case 'mysql':
634 634
         case 'pgsql':
635 635
           $port = '';
636
-          if (! empty($config['port'])) {
636
+            if (! empty($config['port'])) {
637 637
             $port = 'port=' . $config['port'] . ';';
638
-          }
639
-          $dsn = $driver . ':host=' . $config['hostname'] . ';' . $port . 'dbname=' . $config['database'];
640
-          break;
638
+            }
639
+            $dsn = $driver . ':host=' . $config['hostname'] . ';' . $port . 'dbname=' . $config['database'];
640
+            break;
641 641
         case 'sqlite':
642 642
           $dsn = 'sqlite:' . $config['database'];
643
-          break;
644
-          case 'oracle':
643
+            break;
644
+            case 'oracle':
645 645
           $port = '';
646
-          if (! empty($config['port'])) {
646
+            if (! empty($config['port'])) {
647 647
             $port = ':' . $config['port'];
648
-          }
649
-          $dsn =  'oci:dbname=' . $config['hostname'] . $port . '/' . $config['database'];
650
-          break;
651
-      }
652
-      return $dsn;
648
+            }
649
+            $dsn =  'oci:dbname=' . $config['hostname'] . $port . '/' . $config['database'];
650
+            break;
651
+        }
652
+        return $dsn;
653 653
     }
654 654
 
655 655
     /**
@@ -661,11 +661,11 @@  discard block
 block discarded – undo
661 661
     protected function getCacheContentForQuery($query, $returnAsList, $returnAsArray){
662 662
         $cacheKey = $this->getCacheKeyForQuery($query, $returnAsList, $returnAsArray);
663 663
         if (! is_object($this->cacheInstance)){
664
-    			//can not call method with reference in argument
665
-    			//like $this->setCacheInstance(& get_instance()->cache);
666
-    			//use temporary variable
667
-    			$instance = & get_instance()->cache;
668
-    			$this->cacheInstance = $instance;
664
+                //can not call method with reference in argument
665
+                //like $this->setCacheInstance(& get_instance()->cache);
666
+                //use temporary variable
667
+                $instance = & get_instance()->cache;
668
+                $this->cacheInstance = $instance;
669 669
         }
670 670
         return $this->cacheInstance->get($cacheKey);
671 671
     }
@@ -677,80 +677,80 @@  discard block
 block discarded – undo
677 677
      * @param mixed $result the query result to save
678 678
      * @param int $expire the cache TTL
679 679
      */
680
-     protected function setCacheContentForQuery($query, $key, $result, $expire){
680
+        protected function setCacheContentForQuery($query, $key, $result, $expire){
681 681
         $this->logger->info('Save the result for query [' .$query. '] into cache for future use');
682 682
         if (! is_object($this->cacheInstance)){
683
-  				//can not call method with reference in argument
684
-  				//like $this->setCacheInstance(& get_instance()->cache);
685
-  				//use temporary variable
686
-  				$instance = & get_instance()->cache;
687
-  				$this->cacheInstance = $instance;
688
-  			}
683
+                    //can not call method with reference in argument
684
+                    //like $this->setCacheInstance(& get_instance()->cache);
685
+                    //use temporary variable
686
+                    $instance = & get_instance()->cache;
687
+                    $this->cacheInstance = $instance;
688
+                }
689 689
         $this->cacheInstance->set($key, $result, $expire);
690
-     }
690
+        }
691 691
 
692 692
     
693
-	 /**
694
-     * Return the cache key for the given query
695
-     * @see Database::query
696
-     * 
697
-     *  @return string
698
-     */
693
+        /**
694
+         * Return the cache key for the given query
695
+         * @see Database::query
696
+         * 
697
+         *  @return string
698
+         */
699 699
     protected function getCacheKeyForQuery($query, $returnAsList, $returnAsArray){
700
-      return md5($query . $returnAsList . $returnAsArray);
701
-    }
702
-
703
-     /**
704
-     * Set the dependencies instance using argument or create new instance if is null
705
-     * @param string $name this class property name.
706
-     * @param object $instance the instance. If is not null will use it
707
-     * otherwise will create new instance.
708
-     * @param string $loadClassName the name of class to load using class_loader function.
709
-     * @param string $loadClassPath the path of class to load using class_loader function.
710
-     *
711
-     * @return object this current instance
712
-     */
700
+        return md5($query . $returnAsList . $returnAsArray);
701
+    }
702
+
703
+        /**
704
+         * Set the dependencies instance using argument or create new instance if is null
705
+         * @param string $name this class property name.
706
+         * @param object $instance the instance. If is not null will use it
707
+         * otherwise will create new instance.
708
+         * @param string $loadClassName the name of class to load using class_loader function.
709
+         * @param string $loadClassPath the path of class to load using class_loader function.
710
+         *
711
+         * @return object this current instance
712
+         */
713 713
     protected function setDependencyInstanceFromParamOrCreate($name, $instance = null, $loadClassName = null, $loadClassePath = 'classes'){
714
-      if ($instance !== null){
714
+        if ($instance !== null){
715 715
         $this->{$name} = $instance;
716 716
         return $this;
717
-      }
718
-      $this->{$name} =& class_loader($loadClassName, $loadClassePath);
719
-      return $this;
717
+        }
718
+        $this->{$name} =& class_loader($loadClassName, $loadClassePath);
719
+        return $this;
720 720
     }
721 721
     
722
-	   /**
723
-     * Set the Log instance using argument or create new instance
724
-     * @param object $logger the Log instance if not null
725
-     *
726
-     * @return object this current instance
727
-     */
722
+        /**
723
+         * Set the Log instance using argument or create new instance
724
+         * @param object $logger the Log instance if not null
725
+         *
726
+         * @return object this current instance
727
+         */
728 728
     protected function setLoggerFromParamOrCreate(Log $logger = null){
729
-      $this->setDependencyInstanceFromParamOrCreate('logger', $logger, 'Log', 'classes');
730
-      if ($logger === null){
729
+        $this->setDependencyInstanceFromParamOrCreate('logger', $logger, 'Log', 'classes');
730
+        if ($logger === null){
731 731
         $this->logger->setLogger('Library::Database');
732
-      }
733
-      return $this;
732
+        }
733
+        return $this;
734 734
     }
735 735
 	
736 736
     /**
737 737
      * Reset the database class attributs to the initail values before each query.
738 738
      */
739 739
     private function reset(){
740
-	   //query builder reset
741
-      $this->queryBuilder->reset();
742
-      $this->numRows  = 0;
743
-      $this->insertId = null;
744
-      $this->query    = null;
745
-      $this->result   = array();
746
-      $this->data     = array();
740
+        //query builder reset
741
+        $this->queryBuilder->reset();
742
+        $this->numRows  = 0;
743
+        $this->insertId = null;
744
+        $this->query    = null;
745
+        $this->result   = array();
746
+        $this->data     = array();
747 747
     }
748 748
 
749 749
     /**
750 750
      * The class destructor
751 751
      */
752 752
     public function __destruct(){
753
-      $this->pdo = null;
753
+        $this->pdo = null;
754 754
     }
755 755
 
756 756
 }
Please login to merge, or discard this patch.
Spacing   +93 added lines, -93 removed lines patch added patch discarded remove patch
@@ -23,98 +23,98 @@  discard block
 block discarded – undo
23 23
    * along with this program; if not, write to the Free Software
24 24
    * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
25 25
   */
26
-  class Database{
26
+  class Database {
27 27
 	
28 28
   	/**
29 29
   	 * The PDO instance
30 30
   	 * @var object
31 31
   	*/
32
-    private $pdo                 = null;
32
+    private $pdo = null;
33 33
     
34 34
   	/**
35 35
   	 * The database name used for the application
36 36
   	 * @var string
37 37
   	*/
38
-	  private $databaseName        = null;
38
+	  private $databaseName = null;
39 39
 	
40 40
   	/**
41 41
   	 * The number of rows returned by the last query
42 42
   	 * @var int
43 43
   	*/
44
-    private $numRows             = 0;
44
+    private $numRows = 0;
45 45
 	
46 46
   	/**
47 47
   	 * The last insert id for the primary key column that have auto increment or sequence
48 48
   	 * @var mixed
49 49
   	*/
50
-    private $insertId            = null;
50
+    private $insertId = null;
51 51
 	
52 52
   	/**
53 53
   	 * The full SQL query statment after build for each command
54 54
   	 * @var string
55 55
   	*/
56
-    private $query               = null;
56
+    private $query = null;
57 57
 	
58 58
   	/**
59 59
   	 * The result returned for the last query
60 60
   	 * @var mixed
61 61
   	*/
62
-    private $result              = array();
62
+    private $result = array();
63 63
 	
64 64
   	/**
65 65
   	 * The cache default time to live in second. 0 means no need to use the cache feature
66 66
   	 * @var int
67 67
   	*/
68
-  	private $cacheTtl             = 0;
68
+  	private $cacheTtl = 0;
69 69
 	
70 70
   	/**
71 71
   	 * The cache current time to live. 0 means no need to use the cache feature
72 72
   	 * @var int
73 73
   	*/
74
-    private $temporaryCacheTtl   = 0;
74
+    private $temporaryCacheTtl = 0;
75 75
 	
76 76
   	/**
77 77
   	 * The number of executed query for the current request
78 78
   	 * @var int
79 79
   	*/
80
-    private $queryCount          = 0;
80
+    private $queryCount = 0;
81 81
 	
82 82
   	/**
83 83
   	 * The default data to be used in the statments query INSERT, UPDATE
84 84
   	 * @var array
85 85
   	*/
86
-    private $data                = array();
86
+    private $data = array();
87 87
 	
88 88
   	/**
89 89
   	 * The database configuration
90 90
   	 * @var array
91 91
   	*/
92
-    private $config              = array();
92
+    private $config = array();
93 93
 	
94 94
   	/**
95 95
   	 * The logger instance
96 96
   	 * @var object
97 97
   	 */
98
-    private $logger              = null;
98
+    private $logger = null;
99 99
 
100 100
     /**
101 101
     * The cache instance
102 102
     * @var object
103 103
     */
104
-    private $cacheInstance       = null;
104
+    private $cacheInstance = null;
105 105
 
106 106
     
107 107
   	/**
108 108
     * The DatabaseQueryBuilder instance
109 109
     * @var object
110 110
     */
111
-    private $queryBuilder        = null;
111
+    private $queryBuilder = null;
112 112
     
113 113
     /**
114 114
     * The DatabaseQueryRunner instance
115 115
     * @var object
116 116
     */
117
-    private $queryRunner         = null;
117
+    private $queryRunner = null;
118 118
 
119 119
 
120 120
     /**
@@ -122,7 +122,7 @@  discard block
 block discarded – undo
122 122
      * @param array $overwriteConfig the config to overwrite with the config set in database.php
123 123
      * @param boolean $autoConnect whether to connect to database automatically
124 124
      */
125
-    public function __construct($overwriteConfig = array(), $autoConnect = true){
125
+    public function __construct($overwriteConfig = array(), $autoConnect = true) {
126 126
         //Set Log instance to use
127 127
         $this->setLoggerFromParamOrCreate(null);
128 128
 		
@@ -143,10 +143,10 @@  discard block
 block discarded – undo
143 143
      * This is used to connect to database
144 144
      * @return bool 
145 145
      */
146
-    public function connect(){
146
+    public function connect() {
147 147
       $config = $this->getDatabaseConfiguration();
148
-      if (! empty($config)){
149
-        try{
148
+      if (!empty($config)) {
149
+        try {
150 150
             $this->pdo = new PDO($this->getDsnValueFromConfig(), $config['username'], $config['password']);
151 151
             $this->pdo->exec("SET NAMES '" . $config['charset'] . "' COLLATE '" . $config['collation'] . "'");
152 152
             $this->pdo->exec("SET CHARACTER SET '" . $config['charset'] . "'");
@@ -157,7 +157,7 @@  discard block
 block discarded – undo
157 157
 
158 158
             return is_object($this->pdo);
159 159
           }
160
-          catch (PDOException $e){
160
+          catch (PDOException $e) {
161 161
             $this->logger->fatal($e->getMessage());
162 162
             show_error('Cannot connect to Database.');
163 163
             return false;
@@ -171,7 +171,7 @@  discard block
 block discarded – undo
171 171
      * Return the number of rows returned by the current query
172 172
      * @return int
173 173
      */
174
-    public function numRows(){
174
+    public function numRows() {
175 175
       return $this->numRows;
176 176
     }
177 177
 
@@ -179,7 +179,7 @@  discard block
 block discarded – undo
179 179
      * Return the last insert id value
180 180
      * @return mixed
181 181
      */
182
-    public function insertId(){
182
+    public function insertId() {
183 183
       return $this->insertId;
184 184
     }
185 185
 
@@ -190,10 +190,10 @@  discard block
 block discarded – undo
190 190
      * If is string will determine the result type "array" or "object"
191 191
      * @return mixed       the query SQL string or the record result
192 192
      */
193
-    public function get($returnSQLQueryOrResultType = false){
193
+    public function get($returnSQLQueryOrResultType = false) {
194 194
       $this->queryBuilder->limit(1);
195 195
       $query = $this->getAll(true);
196
-      if ($returnSQLQueryOrResultType === true){
196
+      if ($returnSQLQueryOrResultType === true) {
197 197
         return $query;
198 198
       } else {
199 199
         return $this->query($query, false, $returnSQLQueryOrResultType == 'array');
@@ -206,9 +206,9 @@  discard block
 block discarded – undo
206 206
      * If is string will determine the result type "array" or "object"
207 207
      * @return mixed       the query SQL string or the record result
208 208
      */
209
-    public function getAll($returnSQLQueryOrResultType = false){
209
+    public function getAll($returnSQLQueryOrResultType = false) {
210 210
 	   $query = $this->queryBuilder->getQuery();
211
-	   if ($returnSQLQueryOrResultType === true){
211
+	   if ($returnSQLQueryOrResultType === true) {
212 212
       	return $query;
213 213
       }
214 214
       return $this->query($query, true, $returnSQLQueryOrResultType == 'array');
@@ -220,18 +220,18 @@  discard block
 block discarded – undo
220 220
      * @param  boolean $escape  whether to escape or not the values
221 221
      * @return mixed          the insert id of the new record or null
222 222
      */
223
-    public function insert($data = array(), $escape = true){
224
-      if (empty($data) && ! empty($this->data)){
223
+    public function insert($data = array(), $escape = true) {
224
+      if (empty($data) && !empty($this->data)) {
225 225
         //as when using $this->setData() may be the data already escaped
226 226
         $escape = false;
227 227
         $data = $this->data;
228 228
       }
229 229
       $query = $this->queryBuilder->insert($data, $escape)->getQuery();
230 230
       $result = $this->query($query);
231
-      if ($result){
231
+      if ($result) {
232 232
         $this->insertId = $this->pdo->lastInsertId();
233 233
 		    //if the table doesn't have the auto increment field or sequence, the value of 0 will be returned 
234
-        return ! ($this->insertId) ? true : $this->insertId;
234
+        return !($this->insertId) ? true : $this->insertId;
235 235
       }
236 236
       return false;
237 237
     }
@@ -242,8 +242,8 @@  discard block
 block discarded – undo
242 242
      * @param  boolean $escape  whether to escape or not the values
243 243
      * @return mixed          the update status
244 244
      */
245
-    public function update($data = array(), $escape = true){
246
-      if (empty($data) && ! empty($this->data)){
245
+    public function update($data = array(), $escape = true) {
246
+      if (empty($data) && !empty($this->data)) {
247 247
         //as when using $this->setData() may be the data already escaped
248 248
         $escape = false;
249 249
         $data = $this->data;
@@ -256,7 +256,7 @@  discard block
 block discarded – undo
256 256
      * Delete the record in database
257 257
      * @return mixed the delete status
258 258
      */
259
-    public function delete(){
259
+    public function delete() {
260 260
 		  $query = $this->queryBuilder->delete()->getQuery();
261 261
     	return $this->query($query);
262 262
     }
@@ -266,7 +266,7 @@  discard block
 block discarded – undo
266 266
      * @param integer $ttl the cache time to live in second
267 267
      * @return object        the current Database instance
268 268
      */
269
-    public function setCache($ttl = 0){
269
+    public function setCache($ttl = 0) {
270 270
       $this->cacheTtl = $ttl;
271 271
       $this->temporaryCacheTtl = $ttl;
272 272
       return $this;
@@ -277,7 +277,7 @@  discard block
 block discarded – undo
277 277
 	 * @param  integer $ttl the cache time to live in second
278 278
 	 * @return object        the current Database instance
279 279
 	 */
280
-  	public function cached($ttl = 0){
280
+  	public function cached($ttl = 0) {
281 281
         $this->temporaryCacheTtl = $ttl;
282 282
         return $this;
283 283
     }
@@ -289,9 +289,9 @@  discard block
 block discarded – undo
289 289
      * @return mixed       the data after escaped or the same data if no
290 290
      * need escaped
291 291
      */
292
-    public function escape($data, $escaped = true){
292
+    public function escape($data, $escaped = true) {
293 293
       $data = trim($data);
294
-      if($escaped){
294
+      if ($escaped) {
295 295
         return $this->pdo->quote($data);
296 296
       }
297 297
       return $data; 
@@ -301,7 +301,7 @@  discard block
 block discarded – undo
301 301
      * Return the number query executed count for the current request
302 302
      * @return int
303 303
      */
304
-    public function queryCount(){
304
+    public function queryCount() {
305 305
       return $this->queryCount;
306 306
     }
307 307
 
@@ -309,7 +309,7 @@  discard block
 block discarded – undo
309 309
      * Return the current query SQL string
310 310
      * @return string
311 311
      */
312
-    public function getQuery(){
312
+    public function getQuery() {
313 313
       return $this->query;
314 314
     }
315 315
 
@@ -317,7 +317,7 @@  discard block
 block discarded – undo
317 317
      * Return the application database name
318 318
      * @return string
319 319
      */
320
-    public function getDatabaseName(){
320
+    public function getDatabaseName() {
321 321
       return $this->databaseName;
322 322
     }
323 323
 
@@ -325,7 +325,7 @@  discard block
 block discarded – undo
325 325
      * Return the PDO instance
326 326
      * @return object
327 327
      */
328
-    public function getPdo(){
328
+    public function getPdo() {
329 329
       return $this->pdo;
330 330
     }
331 331
 
@@ -334,7 +334,7 @@  discard block
 block discarded – undo
334 334
      * @param object $pdo the pdo object
335 335
 	 * @return object Database
336 336
      */
337
-    public function setPdo(PDO $pdo){
337
+    public function setPdo(PDO $pdo) {
338 338
       $this->pdo = $pdo;
339 339
       return $this;
340 340
     }
@@ -344,7 +344,7 @@  discard block
 block discarded – undo
344 344
      * Return the Log instance
345 345
      * @return Log
346 346
      */
347
-    public function getLogger(){
347
+    public function getLogger() {
348 348
       return $this->logger;
349 349
     }
350 350
 
@@ -353,7 +353,7 @@  discard block
 block discarded – undo
353 353
      * @param Log $logger the log object
354 354
 	 * @return object Database
355 355
      */
356
-    public function setLogger($logger){
356
+    public function setLogger($logger) {
357 357
       $this->logger = $logger;
358 358
       return $this;
359 359
     }
@@ -362,7 +362,7 @@  discard block
 block discarded – undo
362 362
      * Return the cache instance
363 363
      * @return CacheInterface
364 364
      */
365
-    public function getCacheInstance(){
365
+    public function getCacheInstance() {
366 366
       return $this->cacheInstance;
367 367
     }
368 368
 
@@ -371,7 +371,7 @@  discard block
 block discarded – undo
371 371
      * @param CacheInterface $cache the cache object
372 372
 	 * @return object Database
373 373
      */
374
-    public function setCacheInstance($cache){
374
+    public function setCacheInstance($cache) {
375 375
       $this->cacheInstance = $cache;
376 376
       return $this;
377 377
     }
@@ -381,7 +381,7 @@  discard block
 block discarded – undo
381 381
      * Return the DatabaseQueryBuilder instance
382 382
      * @return object DatabaseQueryBuilder
383 383
      */
384
-    public function getQueryBuilder(){
384
+    public function getQueryBuilder() {
385 385
       return $this->queryBuilder;
386 386
     }
387 387
 
@@ -389,7 +389,7 @@  discard block
 block discarded – undo
389 389
      * Set the DatabaseQueryBuilder instance
390 390
      * @param object DatabaseQueryBuilder $queryBuilder the DatabaseQueryBuilder object
391 391
      */
392
-    public function setQueryBuilder(DatabaseQueryBuilder $queryBuilder){
392
+    public function setQueryBuilder(DatabaseQueryBuilder $queryBuilder) {
393 393
       $this->queryBuilder = $queryBuilder;
394 394
       return $this;
395 395
     }
@@ -398,7 +398,7 @@  discard block
 block discarded – undo
398 398
      * Return the DatabaseQueryRunner instance
399 399
      * @return object DatabaseQueryRunner
400 400
      */
401
-    public function getQueryRunner(){
401
+    public function getQueryRunner() {
402 402
       return $this->queryRunner;
403 403
     }
404 404
 
@@ -406,7 +406,7 @@  discard block
 block discarded – undo
406 406
      * Set the DatabaseQueryRunner instance
407 407
      * @param object DatabaseQueryRunner $queryRunner the DatabaseQueryRunner object
408 408
      */
409
-    public function setQueryRunner(DatabaseQueryRunner $queryRunner){
409
+    public function setQueryRunner(DatabaseQueryRunner $queryRunner) {
410 410
       $this->queryRunner = $queryRunner;
411 411
       return $this;
412 412
     }
@@ -415,7 +415,7 @@  discard block
 block discarded – undo
415 415
      * Return the data to be used for insert, update, etc.
416 416
      * @return array
417 417
      */
418
-    public function getData(){
418
+    public function getData() {
419 419
       return $this->data;
420 420
     }
421 421
 
@@ -426,9 +426,9 @@  discard block
 block discarded – undo
426 426
      * @param boolean $escape whether to escape or not the $value
427 427
      * @return object        the current Database instance
428 428
      */
429
-    public function setData($key, $value = null, $escape = true){
430
-  	  if (is_array($key)){
431
-    		foreach($key as $k => $v){
429
+    public function setData($key, $value = null, $escape = true) {
430
+  	  if (is_array($key)) {
431
+    		foreach ($key as $k => $v) {
432 432
     			$this->setData($k, $v, $escape);
433 433
     		}	
434 434
   	  } else {
@@ -444,7 +444,7 @@  discard block
 block discarded – undo
444 444
      * @param  boolean $returnAsArray return the result as array or not
445 445
      * @return mixed         the query result
446 446
      */
447
-    public function query($query, $returnAsList = true, $returnAsArray = false){
447
+    public function query($query, $returnAsList = true, $returnAsArray = false) {
448 448
       $this->reset();
449 449
       $this->query = preg_replace('/\s\s+|\t\t+/', ' ', trim($query));
450 450
       //If is the SELECT query
@@ -465,12 +465,12 @@  discard block
 block discarded – undo
465 465
       //if can use cache feature for this query
466 466
       $dbCacheStatus = $cacheEnable && $cacheExpire > 0;
467 467
     
468
-      if ($dbCacheStatus && $isSqlSELECTQuery){
468
+      if ($dbCacheStatus && $isSqlSELECTQuery) {
469 469
           $this->logger->info('The cache is enabled for this query, try to get result from cache'); 
470 470
           $cacheContent = $this->getCacheContentForQuery($query, $returnAsList, $returnAsArray);  
471 471
       }
472 472
       
473
-      if (!$cacheContent){
473
+      if (!$cacheContent) {
474 474
   	   	//count the number of query execution to server
475 475
         $this->queryCount++;
476 476
         
@@ -479,19 +479,19 @@  discard block
 block discarded – undo
479 479
                                           ->setReturnAsArray($returnAsArray)
480 480
                                           ->execute();
481 481
 
482
-        if (!is_object($queryResult)){
482
+        if (!is_object($queryResult)) {
483 483
           $this->result = false;
484 484
           $this->numRows = 0;
485 485
           return $this->result;
486 486
         }
487 487
         $this->result  = $queryResult->getResult();
488 488
         $this->numRows = $queryResult->getNumRows();
489
-        if ($isSqlSELECTQuery && $dbCacheStatus){
489
+        if ($isSqlSELECTQuery && $dbCacheStatus) {
490 490
             $key = $this->getCacheKeyForQuery($this->query, $returnAsList, $returnAsArray);
491 491
             $this->setCacheContentForQuery($this->query, $key, $this->result, $cacheExpire);
492 492
         }
493
-      } else if ($isSqlSELECTQuery){
494
-          $this->logger->info('The result for query [' .$this->query. '] already cached use it');
493
+      } else if ($isSqlSELECTQuery) {
494
+          $this->logger->info('The result for query [' . $this->query . '] already cached use it');
495 495
           $this->result = $cacheContent;
496 496
           $this->numRows = count($this->result);
497 497
       }
@@ -505,9 +505,9 @@  discard block
 block discarded – undo
505 505
     * @param boolean $autoConnect whether to connect to database after set the configuration
506 506
 	  * @return object Database
507 507
     */
508
-    public function setDatabaseConfiguration(array $overwriteConfig = array(), $useConfigFile = true, $autoConnect = false){
508
+    public function setDatabaseConfiguration(array $overwriteConfig = array(), $useConfigFile = true, $autoConnect = false) {
509 509
       $db = array();
510
-      if ($useConfigFile && file_exists(CONFIG_PATH . 'database.php')){
510
+      if ($useConfigFile && file_exists(CONFIG_PATH . 'database.php')) {
511 511
           //here don't use require_once because somewhere user can create database instance directly
512 512
           require CONFIG_PATH . 'database.php';
513 513
       }
@@ -522,7 +522,7 @@  discard block
 block discarded – undo
522 522
     	//determine the port using the hostname like localhost:3307
523 523
       //hostname will be "localhost", and port "3307"
524 524
       $p = explode(':', $config['hostname']);
525
-  	  if (count($p) >= 2){
525
+  	  if (count($p) >= 2) {
526 526
   		  $config['hostname'] = $p[0];
527 527
   		  $config['port'] = $p[1];
528 528
   		}
@@ -536,7 +536,7 @@  discard block
 block discarded – undo
536 536
 															array('password' => string_hidden($this->config['password']))
537 537
 												))
538 538
 							);
539
-  	  if($autoConnect){
539
+  	  if ($autoConnect) {
540 540
     		 //Now connect to the database
541 541
     		 $this->connect();
542 542
   		}
@@ -547,14 +547,14 @@  discard block
 block discarded – undo
547 547
    * Return the database configuration
548 548
    * @return array
549 549
    */
550
-    public  function getDatabaseConfiguration(){
550
+    public  function getDatabaseConfiguration() {
551 551
       return $this->config;
552 552
     }
553 553
 
554 554
     /**
555 555
      * Close the connexion
556 556
      */
557
-    public function close(){
557
+    public function close() {
558 558
       $this->pdo = null;
559 559
     }
560 560
 
@@ -562,7 +562,7 @@  discard block
 block discarded – undo
562 562
      * Return the database default configuration
563 563
      * @return array
564 564
      */
565
-    protected function getDatabaseDefaultConfiguration(){
565
+    protected function getDatabaseDefaultConfiguration() {
566 566
       return array(
567 567
               'driver' => '',
568 568
               'username' => '',
@@ -580,16 +580,16 @@  discard block
 block discarded – undo
580 580
      * Update the DatabaseQueryBuilder and DatabaseQueryRunner properties
581 581
      * @return void
582 582
      */
583
-    protected function updateQueryBuilderAndRunnerProperties(){
583
+    protected function updateQueryBuilderAndRunnerProperties() {
584 584
        //update queryBuilder with some properties needed
585
-     if (is_object($this->queryBuilder)){
585
+     if (is_object($this->queryBuilder)) {
586 586
         $this->queryBuilder->setDriver($this->config['driver'])
587 587
                            ->setPrefix($this->config['prefix'])
588 588
                            ->setPdo($this->pdo);
589 589
      }
590 590
 
591 591
       //update queryRunner with some properties needed
592
-     if (is_object($this->queryRunner)){
592
+     if (is_object($this->queryRunner)) {
593 593
         $this->queryRunner->setDriver($this->config['driver'])
594 594
                           ->setPdo($this->pdo);
595 595
      }
@@ -600,10 +600,10 @@  discard block
 block discarded – undo
600 600
      * This method is used to get the PDO DSN string using the configured driver
601 601
      * @return string|null the DSN string or null if can not find it
602 602
      */
603
-    protected function getDsnValueFromConfig(){
603
+    protected function getDsnValueFromConfig() {
604 604
       $dsn = null;
605 605
       $config = $this->getDatabaseConfiguration();
606
-      if (! empty($config)){
606
+      if (!empty($config)) {
607 607
         $driver = $config['driver'];
608 608
         $driverDsnMap = array(
609 609
                               'mysql'  => $this->getDsnValueForDriver('mysql'),
@@ -611,7 +611,7 @@  discard block
 block discarded – undo
611 611
                               'sqlite' => $this->getDsnValueForDriver('sqlite'),
612 612
                               'oracle' => $this->getDsnValueForDriver('oracle')
613 613
                               );
614
-        if (isset($driverDsnMap[$driver])){
614
+        if (isset($driverDsnMap[$driver])) {
615 615
           $dsn = $driverDsnMap[$driver];
616 616
         }
617 617
       }    
@@ -623,17 +623,17 @@  discard block
 block discarded – undo
623 623
      * @param  string $driver the driver name
624 624
      * @return string|null         the dsn name
625 625
      */
626
-    protected function getDsnValueForDriver($driver){
626
+    protected function getDsnValueForDriver($driver) {
627 627
       $dsn = '';
628 628
       $config = $this->getDatabaseConfiguration();
629
-      if (empty($config)){
629
+      if (empty($config)) {
630 630
         return null;
631 631
       }
632 632
       switch ($driver) {
633 633
         case 'mysql':
634 634
         case 'pgsql':
635 635
           $port = '';
636
-          if (! empty($config['port'])) {
636
+          if (!empty($config['port'])) {
637 637
             $port = 'port=' . $config['port'] . ';';
638 638
           }
639 639
           $dsn = $driver . ':host=' . $config['hostname'] . ';' . $port . 'dbname=' . $config['database'];
@@ -643,10 +643,10 @@  discard block
 block discarded – undo
643 643
           break;
644 644
           case 'oracle':
645 645
           $port = '';
646
-          if (! empty($config['port'])) {
646
+          if (!empty($config['port'])) {
647 647
             $port = ':' . $config['port'];
648 648
           }
649
-          $dsn =  'oci:dbname=' . $config['hostname'] . $port . '/' . $config['database'];
649
+          $dsn = 'oci:dbname=' . $config['hostname'] . $port . '/' . $config['database'];
650 650
           break;
651 651
       }
652 652
       return $dsn;
@@ -658,9 +658,9 @@  discard block
 block discarded – undo
658 658
      *      
659 659
      * @return mixed
660 660
      */
661
-    protected function getCacheContentForQuery($query, $returnAsList, $returnAsArray){
661
+    protected function getCacheContentForQuery($query, $returnAsList, $returnAsArray) {
662 662
         $cacheKey = $this->getCacheKeyForQuery($query, $returnAsList, $returnAsArray);
663
-        if (! is_object($this->cacheInstance)){
663
+        if (!is_object($this->cacheInstance)) {
664 664
     			//can not call method with reference in argument
665 665
     			//like $this->setCacheInstance(& get_instance()->cache);
666 666
     			//use temporary variable
@@ -677,9 +677,9 @@  discard block
 block discarded – undo
677 677
      * @param mixed $result the query result to save
678 678
      * @param int $expire the cache TTL
679 679
      */
680
-     protected function setCacheContentForQuery($query, $key, $result, $expire){
681
-        $this->logger->info('Save the result for query [' .$query. '] into cache for future use');
682
-        if (! is_object($this->cacheInstance)){
680
+     protected function setCacheContentForQuery($query, $key, $result, $expire) {
681
+        $this->logger->info('Save the result for query [' . $query . '] into cache for future use');
682
+        if (!is_object($this->cacheInstance)) {
683 683
   				//can not call method with reference in argument
684 684
   				//like $this->setCacheInstance(& get_instance()->cache);
685 685
   				//use temporary variable
@@ -696,7 +696,7 @@  discard block
 block discarded – undo
696 696
      * 
697 697
      *  @return string
698 698
      */
699
-    protected function getCacheKeyForQuery($query, $returnAsList, $returnAsArray){
699
+    protected function getCacheKeyForQuery($query, $returnAsList, $returnAsArray) {
700 700
       return md5($query . $returnAsList . $returnAsArray);
701 701
     }
702 702
 
@@ -710,12 +710,12 @@  discard block
 block discarded – undo
710 710
      *
711 711
      * @return object this current instance
712 712
      */
713
-    protected function setDependencyInstanceFromParamOrCreate($name, $instance = null, $loadClassName = null, $loadClassePath = 'classes'){
714
-      if ($instance !== null){
713
+    protected function setDependencyInstanceFromParamOrCreate($name, $instance = null, $loadClassName = null, $loadClassePath = 'classes') {
714
+      if ($instance !== null) {
715 715
         $this->{$name} = $instance;
716 716
         return $this;
717 717
       }
718
-      $this->{$name} =& class_loader($loadClassName, $loadClassePath);
718
+      $this->{$name} = & class_loader($loadClassName, $loadClassePath);
719 719
       return $this;
720 720
     }
721 721
     
@@ -725,9 +725,9 @@  discard block
 block discarded – undo
725 725
      *
726 726
      * @return object this current instance
727 727
      */
728
-    protected function setLoggerFromParamOrCreate(Log $logger = null){
728
+    protected function setLoggerFromParamOrCreate(Log $logger = null) {
729 729
       $this->setDependencyInstanceFromParamOrCreate('logger', $logger, 'Log', 'classes');
730
-      if ($logger === null){
730
+      if ($logger === null) {
731 731
         $this->logger->setLogger('Library::Database');
732 732
       }
733 733
       return $this;
@@ -736,7 +736,7 @@  discard block
 block discarded – undo
736 736
     /**
737 737
      * Reset the database class attributs to the initail values before each query.
738 738
      */
739
-    private function reset(){
739
+    private function reset() {
740 740
 	   //query builder reset
741 741
       $this->queryBuilder->reset();
742 742
       $this->numRows  = 0;
@@ -749,7 +749,7 @@  discard block
 block discarded – undo
749 749
     /**
750 750
      * The class destructor
751 751
      */
752
-    public function __destruct(){
752
+    public function __destruct() {
753 753
       $this->pdo = null;
754 754
     }
755 755
 
Please login to merge, or discard this patch.
Braces   +1 added lines, -2 removed lines patch added patch discarded remove patch
@@ -156,8 +156,7 @@
 block discarded – undo
156 156
             $this->updateQueryBuilderAndRunnerProperties();
157 157
 
158 158
             return is_object($this->pdo);
159
-          }
160
-          catch (PDOException $e){
159
+          } catch (PDOException $e){
161 160
             $this->logger->fatal($e->getMessage());
162 161
             show_error('Cannot connect to Database.');
163 162
             return false;
Please login to merge, or discard this patch.
core/libraries/Pagination.php 3 patches
Indentation   +42 added lines, -42 removed lines patch added patch discarded remove patch
@@ -1,32 +1,32 @@  discard block
 block discarded – undo
1 1
 <?php
2 2
     defined('ROOT_PATH') || exit('Access denied');
3
-	/**
4
-	 * TNH Framework
5
-	 *
6
-	 * A simple PHP framework using HMVC architecture
7
-	 *
8
-	 * This content is released under the GNU GPL License (GPL)
9
-	 *
10
-	 * Copyright (C) 2017 Tony NGUEREZA
11
-	 *
12
-	 * This program is free software; you can redistribute it and/or
13
-	 * modify it under the terms of the GNU General Public License
14
-	 * as published by the Free Software Foundation; either version 3
15
-	 * of the License, or (at your option) any later version.
16
-	 *
17
-	 * This program is distributed in the hope that it will be useful,
18
-	 * but WITHOUT ANY WARRANTY; without even the implied warranty of
19
-	 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
20
-	 * GNU General Public License for more details.
21
-	 *
22
-	 * You should have received a copy of the GNU General Public License
23
-	 * along with this program; if not, write to the Free Software
24
-	 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
25
-	*/
3
+    /**
4
+     * TNH Framework
5
+     *
6
+     * A simple PHP framework using HMVC architecture
7
+     *
8
+     * This content is released under the GNU GPL License (GPL)
9
+     *
10
+     * Copyright (C) 2017 Tony NGUEREZA
11
+     *
12
+     * This program is free software; you can redistribute it and/or
13
+     * modify it under the terms of the GNU General Public License
14
+     * as published by the Free Software Foundation; either version 3
15
+     * of the License, or (at your option) any later version.
16
+     *
17
+     * This program is distributed in the hope that it will be useful,
18
+     * but WITHOUT ANY WARRANTY; without even the implied warranty of
19
+     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
20
+     * GNU General Public License for more details.
21
+     *
22
+     * You should have received a copy of the GNU General Public License
23
+     * along with this program; if not, write to the Free Software
24
+     * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
25
+     */
26 26
 
27 27
     class Pagination{
28 28
         
29
-		/**
29
+        /**
30 30
          * The list of loaded config
31 31
          * @var array
32 32
          */
@@ -49,13 +49,13 @@  discard block
 block discarded – undo
49 49
                 if (empty($config) || ! is_array($config)){
50 50
                     show_error('No configuration found in ' . CONFIG_PATH . 'config_pagination.php');
51 51
                 }
52
-				else{
53
-					$config = array_merge($config, $overwriteConfig);
54
-					$this->config = $config;
52
+                else{
53
+                    $config = array_merge($config, $overwriteConfig);
54
+                    $this->config = $config;
55 55
                     //put it gobally
56
-					Config::setAll($config);
57
-					unset($config);
58
-				}
56
+                    Config::setAll($config);
57
+                    unset($config);
58
+                }
59 59
             }
60 60
             else{
61 61
                 show_error('Unable to find the pagination configuration file');
@@ -92,11 +92,11 @@  discard block
 block discarded – undo
92 92
             return $this->paginationQueryString;
93 93
         }
94 94
 
95
-         /**
96
-         * Set the value of the pagination query string
97
-         * @param string $paginationQueryString the new value
98
-         * @return object
99
-         */
95
+            /**
96
+             * Set the value of the pagination query string
97
+             * @param string $paginationQueryString the new value
98
+             * @return object
99
+             */
100 100
         public function setPaginationQueryString($paginationQueryString){
101 101
             $this->paginationQueryString = $paginationQueryString;
102 102
             return $this;
@@ -113,7 +113,7 @@  discard block
 block discarded – undo
113 113
             $queryString = Url::queryString();
114 114
             $currentUrl = Url::current();
115 115
             $query = '';
116
-             if ($queryString == ''){
116
+                if ($queryString == ''){
117 117
                 $query = '?' . $pageQueryName . '=';
118 118
             }
119 119
             else{
@@ -146,7 +146,7 @@  discard block
 block discarded – undo
146 146
          */
147 147
         public function getLink($totalRows, $currentPageNumber){
148 148
             $numberOfLink = $this->config['nb_link'];
149
-			$numberOfRowPerPage = $this->config['pagination_per_page'];
149
+            $numberOfRowPerPage = $this->config['pagination_per_page'];
150 150
             if (empty($this->paginationQueryString)){
151 151
                 //determine the pagination query string value
152 152
                 $this->determinePaginationQueryStringValue();
@@ -159,8 +159,8 @@  discard block
 block discarded – undo
159 159
             $numberOfRowPerPage = (int) $numberOfRowPerPage;
160 160
 			
161 161
             if ($currentPageNumber <= 0){
162
-				$currentPageNumber = 1;
163
-			}
162
+                $currentPageNumber = 1;
163
+            }
164 164
             if ($numberOfPage <= 1 || $numberOfLink <= 0 || $numberOfRowPerPage <= 0) {
165 165
                 return $navbar;
166 166
             }
@@ -185,7 +185,7 @@  discard block
 block discarded – undo
185 185
                 $navbar .= $this->buildPaginationLinkForMiddlePage($begin, $end, $currentPageNumber);
186 186
             }
187 187
             else if ($currentPageNumber == $numberOfPage){
188
-               $navbar .= $this->buildPaginationLinkForLastPage($begin, $end, $currentPageNumber);
188
+                $navbar .= $this->buildPaginationLinkForLastPage($begin, $end, $currentPageNumber);
189 189
             }
190 190
             $navbar = $this->config['pagination_open'] . $navbar . $this->config['pagination_close'];
191 191
             return $navbar;
@@ -253,8 +253,8 @@  discard block
 block discarded – undo
253 253
                 }
254 254
             }
255 255
             $navbar .= $this->config['next_open']
256
-                         . '<a href="' . $query . ($currentPageNumber + 1) . '">' 
257
-                         . $this->config['next_text'] . '</a>' . $this->config['next_close'];
256
+                            . '<a href="' . $query . ($currentPageNumber + 1) . '">' 
257
+                            . $this->config['next_text'] . '</a>' . $this->config['next_close'];
258 258
             return $navbar;
259 259
         }
260 260
 
Please login to merge, or discard this patch.
Spacing   +46 added lines, -46 removed lines patch added patch discarded remove patch
@@ -24,7 +24,7 @@  discard block
 block discarded – undo
24 24
 	 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
25 25
 	*/
26 26
 
27
-    class Pagination{
27
+    class Pagination {
28 28
         
29 29
 		/**
30 30
          * The list of loaded config
@@ -42,14 +42,14 @@  discard block
 block discarded – undo
42 42
          * Create an instance of pagination
43 43
          * @param array $overwriteConfig the list of configuration to overwrite the defined configuration in config_pagination.php
44 44
          */
45
-        public function __construct(array $overwriteConfig = array()){
46
-            if (file_exists(CONFIG_PATH . 'config_pagination.php')){
45
+        public function __construct(array $overwriteConfig = array()) {
46
+            if (file_exists(CONFIG_PATH . 'config_pagination.php')) {
47 47
                 $config = array();
48 48
                 require_once CONFIG_PATH . 'config_pagination.php';
49
-                if (empty($config) || ! is_array($config)){
49
+                if (empty($config) || !is_array($config)) {
50 50
                     show_error('No configuration found in ' . CONFIG_PATH . 'config_pagination.php');
51 51
                 }
52
-				else{
52
+				else {
53 53
 					$config = array_merge($config, $overwriteConfig);
54 54
 					$this->config = $config;
55 55
                     //put it gobally
@@ -57,7 +57,7 @@  discard block
 block discarded – undo
57 57
 					unset($config);
58 58
 				}
59 59
             }
60
-            else{
60
+            else {
61 61
                 show_error('Unable to find the pagination configuration file');
62 62
             }
63 63
         }
@@ -68,8 +68,8 @@  discard block
 block discarded – undo
68 68
          * config_pagination.php
69 69
          * @param array $config the configuration to overwrite
70 70
          */
71
-        public function setConfig(array $config = array()){
72
-            if (! empty($config)){
71
+        public function setConfig(array $config = array()) {
72
+            if (!empty($config)) {
73 73
                 $this->config = array_merge($this->config, $config);
74 74
                 Config::setAll($config);
75 75
             }
@@ -80,7 +80,7 @@  discard block
 block discarded – undo
80 80
          * 
81 81
          * @return array
82 82
          */
83
-        public function getConfig(){
83
+        public function getConfig() {
84 84
             return $this->config;
85 85
         }
86 86
 
@@ -88,7 +88,7 @@  discard block
 block discarded – undo
88 88
          * Return the value of the pagination query string
89 89
          * @return string
90 90
          */
91
-        public function getPaginationQueryString(){
91
+        public function getPaginationQueryString() {
92 92
             return $this->paginationQueryString;
93 93
         }
94 94
 
@@ -97,7 +97,7 @@  discard block
 block discarded – undo
97 97
          * @param string $paginationQueryString the new value
98 98
          * @return object
99 99
          */
100
-        public function setPaginationQueryString($paginationQueryString){
100
+        public function setPaginationQueryString($paginationQueryString) {
101 101
             $this->paginationQueryString = $paginationQueryString;
102 102
             return $this;
103 103
         }
@@ -108,25 +108,25 @@  discard block
 block discarded – undo
108 108
          * 
109 109
          * @return object
110 110
          */
111
-        public function determinePaginationQueryStringValue(){
111
+        public function determinePaginationQueryStringValue() {
112 112
             $pageQueryName = $this->config['page_query_string_name'];
113 113
             $queryString = Url::queryString();
114 114
             $currentUrl = Url::current();
115 115
             $query = '';
116
-             if ($queryString == ''){
116
+             if ($queryString == '') {
117 117
                 $query = '?' . $pageQueryName . '=';
118 118
             }
119
-            else{
119
+            else {
120 120
                 $tab = explode($pageQueryName . '=', $queryString);
121 121
                 $nb = count($tab);
122
-                if ($nb == 1){
122
+                if ($nb == 1) {
123 123
                     $query = '?' . $queryString . '&' . $pageQueryName . '=';
124 124
                 }
125
-                else{
126
-                    if ($tab[0] == ''){
125
+                else {
126
+                    if ($tab[0] == '') {
127 127
                         $query = '?' . $pageQueryName . '=';
128 128
                     }
129
-                    else{
129
+                    else {
130 130
                         $query = '?' . $tab[0] . '' . $pageQueryName . '=';
131 131
                     }
132 132
                 }
@@ -144,10 +144,10 @@  discard block
 block discarded – undo
144 144
          * 
145 145
          * @return string the pagination link
146 146
          */
147
-        public function getLink($totalRows, $currentPageNumber){
147
+        public function getLink($totalRows, $currentPageNumber) {
148 148
             $numberOfLink = $this->config['nb_link'];
149 149
 			$numberOfRowPerPage = $this->config['pagination_per_page'];
150
-            if (empty($this->paginationQueryString)){
150
+            if (empty($this->paginationQueryString)) {
151 151
                 //determine the pagination query string value
152 152
                 $this->determinePaginationQueryStringValue();
153 153
             }
@@ -158,7 +158,7 @@  discard block
 block discarded – undo
158 158
             $numberOfLink = (int) $numberOfLink;
159 159
             $numberOfRowPerPage = (int) $numberOfRowPerPage;
160 160
 			
161
-            if ($currentPageNumber <= 0){
161
+            if ($currentPageNumber <= 0) {
162 162
 				$currentPageNumber = 1;
163 163
 			}
164 164
             if ($numberOfPage <= 1 || $numberOfLink <= 0 || $numberOfRowPerPage <= 0) {
@@ -173,18 +173,18 @@  discard block
 block discarded – undo
173 173
          * @param  int $numberOfPage      the total number of page
174 174
          * @return string
175 175
          */
176
-        protected function buildPaginationNavbar($currentPageNumber, $numberOfPage){
176
+        protected function buildPaginationNavbar($currentPageNumber, $numberOfPage) {
177 177
             $values = $this->getPaginationBeginAndEndNumber($currentPageNumber, $numberOfPage);
178 178
             $begin = $values['begin'];
179 179
             $end   = $values['end'];
180 180
             $navbar = null;
181
-            if ($currentPageNumber == 1){
181
+            if ($currentPageNumber == 1) {
182 182
                 $navbar .= $this->buildPaginationLinkForFirstPage($begin, $end, $currentPageNumber);
183 183
             }
184
-            else if ($currentPageNumber > 1 && $currentPageNumber < $numberOfPage){
184
+            else if ($currentPageNumber > 1 && $currentPageNumber < $numberOfPage) {
185 185
                 $navbar .= $this->buildPaginationLinkForMiddlePage($begin, $end, $currentPageNumber);
186 186
             }
187
-            else if ($currentPageNumber == $numberOfPage){
187
+            else if ($currentPageNumber == $numberOfPage) {
188 188
                $navbar .= $this->buildPaginationLinkForLastPage($begin, $end, $currentPageNumber);
189 189
             }
190 190
             $navbar = $this->config['pagination_open'] . $navbar . $this->config['pagination_close'];
@@ -197,32 +197,32 @@  discard block
 block discarded – undo
197 197
          * @param  int $numberOfPage      the total number of page
198 198
          * @return array                    the begin and end number
199 199
          */
200
-        protected function getPaginationBeginAndEndNumber($currentPageNumber, $numberOfPage){
200
+        protected function getPaginationBeginAndEndNumber($currentPageNumber, $numberOfPage) {
201 201
             $start = null;
202 202
             $begin = null;
203 203
             $end   = null;
204 204
             $numberOfLink = $this->config['nb_link'];
205
-            if ($numberOfLink % 2 == 0){
205
+            if ($numberOfLink % 2 == 0) {
206 206
                 $start = $currentPageNumber - ($numberOfLink / 2) + 1;
207 207
                 $end   = $currentPageNumber + ($numberOfLink / 2);
208 208
             }
209
-            else{
209
+            else {
210 210
                 $start = $currentPageNumber - floor($numberOfLink / 2);
211 211
                 $end   = $currentPageNumber + floor($numberOfLink / 2);
212 212
             }
213
-            if ($start <= 1){
213
+            if ($start <= 1) {
214 214
                 $begin = 1;
215 215
                 $end   = $numberOfLink;
216 216
             }
217
-            else if ($start > 1 && $end < $numberOfPage){
217
+            else if ($start > 1 && $end < $numberOfPage) {
218 218
                 $begin = $start;
219 219
                 $end = $end;
220 220
             }
221
-            else{
221
+            else {
222 222
                 $begin = ($numberOfPage - $numberOfLink) + 1;
223 223
                 $end   = $numberOfPage;
224 224
             }
225
-            if ($numberOfPage <= $numberOfLink){
225
+            if ($numberOfPage <= $numberOfLink) {
226 226
                 $begin = 1;
227 227
                 $end = $numberOfPage;
228 228
             }
@@ -239,14 +239,14 @@  discard block
 block discarded – undo
239 239
          * @param  int $currentPageNumber the pagination current page number
240 240
          * @return string                    
241 241
          */
242
-        protected function buildPaginationLinkForFirstPage($begin, $end, $currentPageNumber){
242
+        protected function buildPaginationLinkForFirstPage($begin, $end, $currentPageNumber) {
243 243
             $navbar = null;
244 244
             $query = $this->paginationQueryString;
245
-            for($i = $begin; $i <= $end; $i++){
246
-                if ($i == $currentPageNumber){
245
+            for ($i = $begin; $i <= $end; $i++) {
246
+                if ($i == $currentPageNumber) {
247 247
                     $navbar .= $this->config['active_link_open'] . $currentPageNumber . $this->config['active_link_close'];
248 248
                 }
249
-                else{
249
+                else {
250 250
                     $navbar .= $this->config['digit_open'] 
251 251
                             . '<a href="' . $query . $i . '" ' . attributes_to_string($this->config['attributes']) . '>' . $i . '</a>' 
252 252
                             . $this->config['digit_close'];
@@ -265,23 +265,23 @@  discard block
 block discarded – undo
265 265
          * @param  int $currentPageNumber the pagination current page number
266 266
          * @return string                    
267 267
          */
268
-        protected function buildPaginationLinkForMiddlePage($begin, $end, $currentPageNumber){
268
+        protected function buildPaginationLinkForMiddlePage($begin, $end, $currentPageNumber) {
269 269
             $navbar = null;
270 270
             $query = $this->paginationQueryString;
271 271
             $navbar .= $this->config['previous_open'] 
272 272
                             . '<a href="' . $query . ($currentPageNumber - 1) . '">' 
273 273
                             . $this->config['previous_text'] . '</a>' . $this->config['previous_close'];
274
-            for($i = $begin; $i <= $end; $i++){
275
-                if ($i == $currentPageNumber){
274
+            for ($i = $begin; $i <= $end; $i++) {
275
+                if ($i == $currentPageNumber) {
276 276
                     $navbar .= $this->config['active_link_open'] . $currentPageNumber . $this->config['active_link_close'];
277 277
                 }
278
-                else{
278
+                else {
279 279
                     $navbar .= $this->config['digit_open'] 
280
-                                    . '<a href="' . $query . $i . '"' . attributes_to_string($this->config['attributes']) . '>' . $i .'</a>' 
280
+                                    . '<a href="' . $query . $i . '"' . attributes_to_string($this->config['attributes']) . '>' . $i . '</a>' 
281 281
                                     . $this->config['digit_close'];
282 282
                 }
283 283
             }
284
-            $navbar .= $this->config['next_open']."<a href='$query".($currentPageNumber + 1)."'>".$this->config['next_text']."</a>".$this->config['next_close'];
284
+            $navbar .= $this->config['next_open'] . "<a href='$query" . ($currentPageNumber + 1) . "'>" . $this->config['next_text'] . "</a>" . $this->config['next_close'];
285 285
             return $navbar;
286 286
         }
287 287
 
@@ -292,19 +292,19 @@  discard block
 block discarded – undo
292 292
          * @param  int $currentPageNumber the pagination current page number
293 293
          * @return string                    
294 294
          */
295
-        protected function buildPaginationLinkForLastPage($begin, $end, $currentPageNumber){
295
+        protected function buildPaginationLinkForLastPage($begin, $end, $currentPageNumber) {
296 296
             $navbar = null;
297 297
             $query = $this->paginationQueryString;
298 298
             $navbar .= $this->config['previous_open'] 
299 299
                         . '<a href="' . $query . ($currentPageNumber - 1) . '">' 
300 300
                         . $this->config['previous_text'] . '</a>' . $this->config['previous_close'];
301
-            for($i = $begin; $i <= $end; $i++){
302
-                if ($i == $currentPageNumber){
301
+            for ($i = $begin; $i <= $end; $i++) {
302
+                if ($i == $currentPageNumber) {
303 303
                     $navbar .= $this->config['active_link_open'] 
304 304
                                 . $currentPageNumber 
305 305
                                 . $this->config['active_link_close'];
306 306
                 }
307
-                else{
307
+                else {
308 308
                     $navbar .= $this->config['digit_open'] 
309 309
                                 . '<a href="' . $query . $i . '"' . attributes_to_string($this->config['attributes']) . '>' . $i . '</a>' 
310 310
                                 . $this->config['digit_close'];
Please login to merge, or discard this patch.
Braces   +13 added lines, -26 removed lines patch added patch discarded remove patch
@@ -48,16 +48,14 @@  discard block
 block discarded – undo
48 48
                 require_once CONFIG_PATH . 'config_pagination.php';
49 49
                 if (empty($config) || ! is_array($config)){
50 50
                     show_error('No configuration found in ' . CONFIG_PATH . 'config_pagination.php');
51
-                }
52
-				else{
51
+                } else{
53 52
 					$config = array_merge($config, $overwriteConfig);
54 53
 					$this->config = $config;
55 54
                     //put it gobally
56 55
 					Config::setAll($config);
57 56
 					unset($config);
58 57
 				}
59
-            }
60
-            else{
58
+            } else{
61 59
                 show_error('Unable to find the pagination configuration file');
62 60
             }
63 61
         }
@@ -115,18 +113,15 @@  discard block
 block discarded – undo
115 113
             $query = '';
116 114
              if ($queryString == ''){
117 115
                 $query = '?' . $pageQueryName . '=';
118
-            }
119
-            else{
116
+            } else{
120 117
                 $tab = explode($pageQueryName . '=', $queryString);
121 118
                 $nb = count($tab);
122 119
                 if ($nb == 1){
123 120
                     $query = '?' . $queryString . '&' . $pageQueryName . '=';
124
-                }
125
-                else{
121
+                } else{
126 122
                     if ($tab[0] == ''){
127 123
                         $query = '?' . $pageQueryName . '=';
128
-                    }
129
-                    else{
124
+                    } else{
130 125
                         $query = '?' . $tab[0] . '' . $pageQueryName . '=';
131 126
                     }
132 127
                 }
@@ -180,11 +175,9 @@  discard block
 block discarded – undo
180 175
             $navbar = null;
181 176
             if ($currentPageNumber == 1){
182 177
                 $navbar .= $this->buildPaginationLinkForFirstPage($begin, $end, $currentPageNumber);
183
-            }
184
-            else if ($currentPageNumber > 1 && $currentPageNumber < $numberOfPage){
178
+            } else if ($currentPageNumber > 1 && $currentPageNumber < $numberOfPage){
185 179
                 $navbar .= $this->buildPaginationLinkForMiddlePage($begin, $end, $currentPageNumber);
186
-            }
187
-            else if ($currentPageNumber == $numberOfPage){
180
+            } else if ($currentPageNumber == $numberOfPage){
188 181
                $navbar .= $this->buildPaginationLinkForLastPage($begin, $end, $currentPageNumber);
189 182
             }
190 183
             $navbar = $this->config['pagination_open'] . $navbar . $this->config['pagination_close'];
@@ -205,20 +198,17 @@  discard block
 block discarded – undo
205 198
             if ($numberOfLink % 2 == 0){
206 199
                 $start = $currentPageNumber - ($numberOfLink / 2) + 1;
207 200
                 $end   = $currentPageNumber + ($numberOfLink / 2);
208
-            }
209
-            else{
201
+            } else{
210 202
                 $start = $currentPageNumber - floor($numberOfLink / 2);
211 203
                 $end   = $currentPageNumber + floor($numberOfLink / 2);
212 204
             }
213 205
             if ($start <= 1){
214 206
                 $begin = 1;
215 207
                 $end   = $numberOfLink;
216
-            }
217
-            else if ($start > 1 && $end < $numberOfPage){
208
+            } else if ($start > 1 && $end < $numberOfPage){
218 209
                 $begin = $start;
219 210
                 $end = $end;
220
-            }
221
-            else{
211
+            } else{
222 212
                 $begin = ($numberOfPage - $numberOfLink) + 1;
223 213
                 $end   = $numberOfPage;
224 214
             }
@@ -245,8 +235,7 @@  discard block
 block discarded – undo
245 235
             for($i = $begin; $i <= $end; $i++){
246 236
                 if ($i == $currentPageNumber){
247 237
                     $navbar .= $this->config['active_link_open'] . $currentPageNumber . $this->config['active_link_close'];
248
-                }
249
-                else{
238
+                } else{
250 239
                     $navbar .= $this->config['digit_open'] 
251 240
                             . '<a href="' . $query . $i . '" ' . attributes_to_string($this->config['attributes']) . '>' . $i . '</a>' 
252 241
                             . $this->config['digit_close'];
@@ -274,8 +263,7 @@  discard block
 block discarded – undo
274 263
             for($i = $begin; $i <= $end; $i++){
275 264
                 if ($i == $currentPageNumber){
276 265
                     $navbar .= $this->config['active_link_open'] . $currentPageNumber . $this->config['active_link_close'];
277
-                }
278
-                else{
266
+                } else{
279 267
                     $navbar .= $this->config['digit_open'] 
280 268
                                     . '<a href="' . $query . $i . '"' . attributes_to_string($this->config['attributes']) . '>' . $i .'</a>' 
281 269
                                     . $this->config['digit_close'];
@@ -303,8 +291,7 @@  discard block
 block discarded – undo
303 291
                     $navbar .= $this->config['active_link_open'] 
304 292
                                 . $currentPageNumber 
305 293
                                 . $this->config['active_link_close'];
306
-                }
307
-                else{
294
+                } else{
308 295
                     $navbar .= $this->config['digit_open'] 
309 296
                                 . '<a href="' . $query . $i . '"' . attributes_to_string($this->config['attributes']) . '>' . $i . '</a>' 
310 297
                                 . $this->config['digit_close'];
Please login to merge, or discard this patch.
core/classes/Module.php 3 patches
Indentation   +284 added lines, -284 removed lines patch added patch discarded remove patch
@@ -1,6 +1,6 @@  discard block
 block discarded – undo
1 1
 <?php
2
-	defined('ROOT_PATH') || exit('Access denied');
3
-	/**
2
+    defined('ROOT_PATH') || exit('Access denied');
3
+    /**
4 4
      * TNH Framework
5 5
      *
6 6
      * A simple PHP framework using HMVC architecture
@@ -22,308 +22,308 @@  discard block
 block discarded – undo
22 22
      * You should have received a copy of the GNU General Public License
23 23
      * along with this program; if not, write to the Free Software
24 24
      * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
25
-    */
25
+     */
26 26
    
27
-	class Module{
27
+    class Module{
28 28
 		
29
-		/**
30
-		 * list of loaded module
31
-		 * @var array
32
-		 */
33
-		private static $list = array();
29
+        /**
30
+         * list of loaded module
31
+         * @var array
32
+         */
33
+        private static $list = array();
34 34
 
35
-		/**
36
-		 * logger instance
37
-		 * @var Log
38
-		 */
39
-		private static $logger;
35
+        /**
36
+         * logger instance
37
+         * @var Log
38
+         */
39
+        private static $logger;
40 40
 
41
-		/**
42
-		 * The signleton of the logger
43
-		 * @return Object the Log instance
44
-		 */
45
-		private static function getLogger(){
46
-			if(self::$logger == null){
47
-				self::$logger[0] =& class_loader('Log', 'classes');
48
-				self::$logger[0]->setLogger('Library::Module');
49
-			}
50
-			return self::$logger[0];
51
-		}
41
+        /**
42
+         * The signleton of the logger
43
+         * @return Object the Log instance
44
+         */
45
+        private static function getLogger(){
46
+            if(self::$logger == null){
47
+                self::$logger[0] =& class_loader('Log', 'classes');
48
+                self::$logger[0]->setLogger('Library::Module');
49
+            }
50
+            return self::$logger[0];
51
+        }
52 52
 
53
-		/**
54
-		 * Initialise the module list by scanning the directory MODULE_PATH
55
-		 */
56
-		public function init(){
57
-			$logger = self::getLogger();
58
-			$logger->debug('Check if the application contains the modules ...');
59
-			$moduleDir = opendir(MODULE_PATH);
60
-			if(is_resource($moduleDir)){
61
-				while(($module = readdir($moduleDir)) !== false){
62
-					if(preg_match('/^([a-z0-9-_]+)$/i', $module) && is_dir(MODULE_PATH . $module)){
63
-						self::$list[] = $module;
64
-					}
65
-					else{
66
-						$logger->info('Skipping [' .$module. '], may be this is not a directory or does not exists or is invalid name');
67
-					}
68
-				}
69
-				closedir($moduleDir);
70
-			}
71
-			ksort(self::$list);
53
+        /**
54
+         * Initialise the module list by scanning the directory MODULE_PATH
55
+         */
56
+        public function init(){
57
+            $logger = self::getLogger();
58
+            $logger->debug('Check if the application contains the modules ...');
59
+            $moduleDir = opendir(MODULE_PATH);
60
+            if(is_resource($moduleDir)){
61
+                while(($module = readdir($moduleDir)) !== false){
62
+                    if(preg_match('/^([a-z0-9-_]+)$/i', $module) && is_dir(MODULE_PATH . $module)){
63
+                        self::$list[] = $module;
64
+                    }
65
+                    else{
66
+                        $logger->info('Skipping [' .$module. '], may be this is not a directory or does not exists or is invalid name');
67
+                    }
68
+                }
69
+                closedir($moduleDir);
70
+            }
71
+            ksort(self::$list);
72 72
 			
73
-			if(self::hasModule()){
74
-				$logger->info('The application contains the module below [' . implode(', ', self::getModuleList()) . ']');
75
-			}
76
-		}
73
+            if(self::hasModule()){
74
+                $logger->info('The application contains the module below [' . implode(', ', self::getModuleList()) . ']');
75
+            }
76
+        }
77 77
 		
78
-		/**
79
-		 * Get the list of the custom autoload configuration from module if exists
80
-		 * @return array|boolean the autoload configurations list or false if no module contains the autoload configuration values
81
-		 */
82
-		public static function getModulesAutoloadConfig(){
83
-			$logger = self::getLogger();
84
-			if(! self::hasModule()){
85
-				$logger->info('No module was loaded skipping.');
86
-				return false;
87
-			}
88
-			$autoloads = array();
89
-			$autoloads['libraries'] = array();
90
-			$autoloads['config']    = array();
91
-			$autoloads['models']    = array();
92
-			$autoloads['functions'] = array();
93
-			$autoloads['languages'] = array();
78
+        /**
79
+         * Get the list of the custom autoload configuration from module if exists
80
+         * @return array|boolean the autoload configurations list or false if no module contains the autoload configuration values
81
+         */
82
+        public static function getModulesAutoloadConfig(){
83
+            $logger = self::getLogger();
84
+            if(! self::hasModule()){
85
+                $logger->info('No module was loaded skipping.');
86
+                return false;
87
+            }
88
+            $autoloads = array();
89
+            $autoloads['libraries'] = array();
90
+            $autoloads['config']    = array();
91
+            $autoloads['models']    = array();
92
+            $autoloads['functions'] = array();
93
+            $autoloads['languages'] = array();
94 94
 			
95
-			foreach (self::$list as $module) {
96
-				$file = MODULE_PATH . $module . DS . 'config' . DS . 'autoload.php';
97
-				if(file_exists($file)){
98
-					$autoload = array();
99
-					require_once $file;
100
-					if(! empty($autoload) && is_array($autoload)){
101
-						$autoloads = array_merge_recursive($autoloads, $autoload);
102
-						unset($autoload);
103
-					}
104
-				}
105
-			}
106
-			return $autoloads;
107
-		}
95
+            foreach (self::$list as $module) {
96
+                $file = MODULE_PATH . $module . DS . 'config' . DS . 'autoload.php';
97
+                if(file_exists($file)){
98
+                    $autoload = array();
99
+                    require_once $file;
100
+                    if(! empty($autoload) && is_array($autoload)){
101
+                        $autoloads = array_merge_recursive($autoloads, $autoload);
102
+                        unset($autoload);
103
+                    }
104
+                }
105
+            }
106
+            return $autoloads;
107
+        }
108 108
 
109
-		/**
110
-		 * Get the list of the custom routes configuration from module if exists
111
-		 * @return array|boolean the routes list or false if no module contains the routes configuration
112
-		 */
113
-		public static function getModulesRoutes(){
114
-			$logger = self::getLogger();
115
-			if(! self::hasModule()){
116
-				$logger->info('No module was loaded skipping.');
117
-				return false;
118
-			}
119
-			$routes = array();
120
-			foreach (self::$list as $module) {
121
-				$file = MODULE_PATH . $module . DS . 'config' . DS . 'routes.php';
122
-				if(file_exists($file)){
123
-					$route = array();
124
-					require_once $file;
125
-					if(! empty($route) && is_array($route)){
126
-						$routes = array_merge($routes, $route);
127
-						unset($route);
128
-					}
129
-				}
130
-			}
131
-			return $routes;
132
-		}
109
+        /**
110
+         * Get the list of the custom routes configuration from module if exists
111
+         * @return array|boolean the routes list or false if no module contains the routes configuration
112
+         */
113
+        public static function getModulesRoutes(){
114
+            $logger = self::getLogger();
115
+            if(! self::hasModule()){
116
+                $logger->info('No module was loaded skipping.');
117
+                return false;
118
+            }
119
+            $routes = array();
120
+            foreach (self::$list as $module) {
121
+                $file = MODULE_PATH . $module . DS . 'config' . DS . 'routes.php';
122
+                if(file_exists($file)){
123
+                    $route = array();
124
+                    require_once $file;
125
+                    if(! empty($route) && is_array($route)){
126
+                        $routes = array_merge($routes, $route);
127
+                        unset($route);
128
+                    }
129
+                }
130
+            }
131
+            return $routes;
132
+        }
133 133
 
134 134
 
135
-		/**
136
-		 * Check if in module list can have this controller
137
-		 * @param  string $class the controller class
138
-		 * @param  string $module  the module name
139
-		 * @return boolean|string  false or null if no module have this controller, path the full path of the controller
140
-		 */
141
-		public static function findControllerFullPath($class, $module = null){
142
-			$logger = self::getLogger();
143
-			if(! self::hasModule()){
144
-				$logger->info('No module was loaded skiping.');
145
-				return false;
146
-			}
147
-			$class = str_ireplace('.php', '', $class);
148
-			$class = ucfirst($class);
149
-			$classFile = $class.'.php';
150
-			$logger->debug('Checking the controller [' . $class . '] in module [' .$module. '] ...');
151
-			$filePath = MODULE_PATH . $module . DS . 'controllers' . DS . $classFile;
152
-			if(file_exists($filePath)){
153
-				$logger->info('Found controller [' . $class . '] in module [' .$module. '], the file path is [' .$filePath. ']');
154
-				return $filePath;
155
-			}
156
-			$logger->info('Controller [' . $class . '] does not exist in the module [' .$module. ']');
157
-			return false;
158
-		}
135
+        /**
136
+         * Check if in module list can have this controller
137
+         * @param  string $class the controller class
138
+         * @param  string $module  the module name
139
+         * @return boolean|string  false or null if no module have this controller, path the full path of the controller
140
+         */
141
+        public static function findControllerFullPath($class, $module = null){
142
+            $logger = self::getLogger();
143
+            if(! self::hasModule()){
144
+                $logger->info('No module was loaded skiping.');
145
+                return false;
146
+            }
147
+            $class = str_ireplace('.php', '', $class);
148
+            $class = ucfirst($class);
149
+            $classFile = $class.'.php';
150
+            $logger->debug('Checking the controller [' . $class . '] in module [' .$module. '] ...');
151
+            $filePath = MODULE_PATH . $module . DS . 'controllers' . DS . $classFile;
152
+            if(file_exists($filePath)){
153
+                $logger->info('Found controller [' . $class . '] in module [' .$module. '], the file path is [' .$filePath. ']');
154
+                return $filePath;
155
+            }
156
+            $logger->info('Controller [' . $class . '] does not exist in the module [' .$module. ']');
157
+            return false;
158
+        }
159 159
 
160
-		/**
161
-		 * Check if in module list can have this model
162
-		 * @param  string $class the model class
163
-		 * @param string $module the module name
164
-		 * @return boolean|string  false or null if no module have this model, return the full path of this model
165
-		 */
166
-		public static function findModelFullPath($class, $module = null){
167
-			$logger = self::getLogger();
168
-			if(! self::hasModule()){
169
-				$logger->info('No module was loaded skiping.');
170
-				return false;
171
-			}
172
-			$class = str_ireplace('.php', '', $class);
173
-			$class = ucfirst($class);
174
-			$classFile = $class.'.php';
175
-			$logger->debug('Checking model [' . $class . '] in module [' .$module. '] ...');
176
-			$filePath = MODULE_PATH . $module . DS . 'models' . DS . $classFile;
177
-			if(file_exists($filePath)){
178
-				$logger->info('Found model [' . $class . '] in module [' .$module. '], the file path is [' .$filePath. ']');
179
-				return $filePath;
180
-			}
181
-			$logger->info('Model [' . $class . '] does not exist in the module [' .$module. ']');
182
-			return false;
183
-		}
160
+        /**
161
+         * Check if in module list can have this model
162
+         * @param  string $class the model class
163
+         * @param string $module the module name
164
+         * @return boolean|string  false or null if no module have this model, return the full path of this model
165
+         */
166
+        public static function findModelFullPath($class, $module = null){
167
+            $logger = self::getLogger();
168
+            if(! self::hasModule()){
169
+                $logger->info('No module was loaded skiping.');
170
+                return false;
171
+            }
172
+            $class = str_ireplace('.php', '', $class);
173
+            $class = ucfirst($class);
174
+            $classFile = $class.'.php';
175
+            $logger->debug('Checking model [' . $class . '] in module [' .$module. '] ...');
176
+            $filePath = MODULE_PATH . $module . DS . 'models' . DS . $classFile;
177
+            if(file_exists($filePath)){
178
+                $logger->info('Found model [' . $class . '] in module [' .$module. '], the file path is [' .$filePath. ']');
179
+                return $filePath;
180
+            }
181
+            $logger->info('Model [' . $class . '] does not exist in the module [' .$module. ']');
182
+            return false;
183
+        }
184 184
 		
185
-		/**
186
-		 * Check if in module list can have this config
187
-		 * @param  string $configuration the config name
188
-		 * @param string $module the module name
189
-		 * @return boolean|string  false or null if no module have this configuration,  return the full path of this configuration
190
-		 */
191
-		public static function findConfigFullPath($configuration, $module = null){
192
-			$logger = self::getLogger();
193
-			if(! self::hasModule()){
194
-				$logger->info('No module was loaded skiping.');
195
-				return false;
196
-			}
197
-			$configuration = str_ireplace('.php', '', $configuration);
198
-			$file = $configuration.'.php';
199
-			$logger->debug('Checking configuration [' . $configuration . '] in module [' .$module. '] ...');
200
-			$filePath = MODULE_PATH . $module . DS . 'config' . DS . $file;
201
-			if(file_exists($filePath)){
202
-				$logger->info('Found configuration [' . $configuration . '] in module [' .$module. '], the file path is [' .$filePath. ']');
203
-				return $filePath;
204
-			}
205
-			$logger->info('Configuration [' . $configuration . '] does not exist in the module [' .$module. ']');
206
-			return false;
207
-		}
185
+        /**
186
+         * Check if in module list can have this config
187
+         * @param  string $configuration the config name
188
+         * @param string $module the module name
189
+         * @return boolean|string  false or null if no module have this configuration,  return the full path of this configuration
190
+         */
191
+        public static function findConfigFullPath($configuration, $module = null){
192
+            $logger = self::getLogger();
193
+            if(! self::hasModule()){
194
+                $logger->info('No module was loaded skiping.');
195
+                return false;
196
+            }
197
+            $configuration = str_ireplace('.php', '', $configuration);
198
+            $file = $configuration.'.php';
199
+            $logger->debug('Checking configuration [' . $configuration . '] in module [' .$module. '] ...');
200
+            $filePath = MODULE_PATH . $module . DS . 'config' . DS . $file;
201
+            if(file_exists($filePath)){
202
+                $logger->info('Found configuration [' . $configuration . '] in module [' .$module. '], the file path is [' .$filePath. ']');
203
+                return $filePath;
204
+            }
205
+            $logger->info('Configuration [' . $configuration . '] does not exist in the module [' .$module. ']');
206
+            return false;
207
+        }
208 208
 
209
-		/**
210
-		 * Check if in module list can have this helper
211
-		 * @param  string $helper the helper name
212
-		 * @param string $module the module name
213
-		 * @return boolean|string  false or null if no module have this helper,  return the full path of this helper
214
-		 */
215
-		public static function findFunctionFullPath($helper, $module = null){
216
-			$logger = self::getLogger();
217
-			if(! self::hasModule()){
218
-				$logger->info('No module was loaded skiping.');
219
-				return false;
220
-			}
221
-			$helper = str_ireplace('.php', '', $helper);
222
-			$helper = str_ireplace('function_', '', $helper);
223
-			$file = 'function_'.$helper.'.php';
224
-			$logger->debug('Checking helper [' . $helper . '] in module [' .$module. '] ...');
225
-			$filePath = MODULE_PATH . $module . DS . 'functions' . DS . $file;
226
-			if(file_exists($filePath)){
227
-				$logger->info('Found helper [' . $helper . '] in module [' .$module. '], the file path is [' .$filePath. ']');
228
-				return $filePath;
229
-			}
230
-			$logger->info('Helper [' . $helper . '] does not exist in the module [' .$module. ']');
231
-			return false;
209
+        /**
210
+         * Check if in module list can have this helper
211
+         * @param  string $helper the helper name
212
+         * @param string $module the module name
213
+         * @return boolean|string  false or null if no module have this helper,  return the full path of this helper
214
+         */
215
+        public static function findFunctionFullPath($helper, $module = null){
216
+            $logger = self::getLogger();
217
+            if(! self::hasModule()){
218
+                $logger->info('No module was loaded skiping.');
219
+                return false;
220
+            }
221
+            $helper = str_ireplace('.php', '', $helper);
222
+            $helper = str_ireplace('function_', '', $helper);
223
+            $file = 'function_'.$helper.'.php';
224
+            $logger->debug('Checking helper [' . $helper . '] in module [' .$module. '] ...');
225
+            $filePath = MODULE_PATH . $module . DS . 'functions' . DS . $file;
226
+            if(file_exists($filePath)){
227
+                $logger->info('Found helper [' . $helper . '] in module [' .$module. '], the file path is [' .$filePath. ']');
228
+                return $filePath;
229
+            }
230
+            $logger->info('Helper [' . $helper . '] does not exist in the module [' .$module. ']');
231
+            return false;
232 232
 			
233
-		}
233
+        }
234 234
 
235 235
 
236
-		/**
237
-		 * Check if in module list can have this library
238
-		 * @param  string $class the library name
239
-		 * @param string $module the module name
240
-		 * @return boolean|string  false or null if no module have this library,  return the full path of this library
241
-		 */
242
-		public static function findLibraryFullPath($class, $module = null){
243
-			$logger = self::getLogger();
244
-			if(! self::hasModule()){
245
-				$logger->info('No module was loaded skiping.');
246
-				return false;
247
-			}
248
-			$class = str_ireplace('.php', '', $class);
249
-			$file = $class.'.php';
250
-			$logger->debug('Checking library [' . $class . '] in module [' .$module. '] ...');
251
-			$filePath = MODULE_PATH . $module . DS . 'libraries' . DS . $file;
252
-			if(file_exists($filePath)){
253
-				$logger->info('Found library [' . $class . '] in module [' .$module. '], the file path is [' .$filePath. ']');
254
-				return $filePath;
255
-			}
256
-			$logger->info('Library [' . $class . '] does not exist in the module [' .$module. ']');
257
-			return false;
258
-		}
236
+        /**
237
+         * Check if in module list can have this library
238
+         * @param  string $class the library name
239
+         * @param string $module the module name
240
+         * @return boolean|string  false or null if no module have this library,  return the full path of this library
241
+         */
242
+        public static function findLibraryFullPath($class, $module = null){
243
+            $logger = self::getLogger();
244
+            if(! self::hasModule()){
245
+                $logger->info('No module was loaded skiping.');
246
+                return false;
247
+            }
248
+            $class = str_ireplace('.php', '', $class);
249
+            $file = $class.'.php';
250
+            $logger->debug('Checking library [' . $class . '] in module [' .$module. '] ...');
251
+            $filePath = MODULE_PATH . $module . DS . 'libraries' . DS . $file;
252
+            if(file_exists($filePath)){
253
+                $logger->info('Found library [' . $class . '] in module [' .$module. '], the file path is [' .$filePath. ']');
254
+                return $filePath;
255
+            }
256
+            $logger->info('Library [' . $class . '] does not exist in the module [' .$module. ']');
257
+            return false;
258
+        }
259 259
 
260 260
 
261
-		/**
262
-		 * Check if in module list can have this view
263
-		 * @param  string $view the view path
264
-		 * @param string $module the module name to check
265
-		 * @return boolean|string  false or null if no module have this view, path the full path of the view
266
-		 */
267
-		public static function findViewFullPath($view, $module = null){
268
-			$logger = self::getLogger();
269
-			if(! self::hasModule()){
270
-				$logger->info('No module was loaded skiping.');
271
-				return false;
272
-			}
273
-			$view = str_ireplace('.php', '', $view);
274
-			$view = trim($view, '/\\');
275
-			$view = str_ireplace('/', DS, $view);
276
-			$viewFile = $view . '.php';
277
-			$logger->debug('Checking view [' . $view . '] in module [' .$module. '] ...');
278
-			$filePath = MODULE_PATH . $module . DS . 'views' . DS . $viewFile;
279
-			if(file_exists($filePath)){
280
-				$logger->info('Found view [' . $view . '] in module [' .$module. '], the file path is [' .$filePath. ']');
281
-				return $filePath;
282
-			}
283
-			$logger->info('View [' . $view . '] does not exist in the module [' .$module. ']');
284
-			return false;
285
-		}
261
+        /**
262
+         * Check if in module list can have this view
263
+         * @param  string $view the view path
264
+         * @param string $module the module name to check
265
+         * @return boolean|string  false or null if no module have this view, path the full path of the view
266
+         */
267
+        public static function findViewFullPath($view, $module = null){
268
+            $logger = self::getLogger();
269
+            if(! self::hasModule()){
270
+                $logger->info('No module was loaded skiping.');
271
+                return false;
272
+            }
273
+            $view = str_ireplace('.php', '', $view);
274
+            $view = trim($view, '/\\');
275
+            $view = str_ireplace('/', DS, $view);
276
+            $viewFile = $view . '.php';
277
+            $logger->debug('Checking view [' . $view . '] in module [' .$module. '] ...');
278
+            $filePath = MODULE_PATH . $module . DS . 'views' . DS . $viewFile;
279
+            if(file_exists($filePath)){
280
+                $logger->info('Found view [' . $view . '] in module [' .$module. '], the file path is [' .$filePath. ']');
281
+                return $filePath;
282
+            }
283
+            $logger->info('View [' . $view . '] does not exist in the module [' .$module. ']');
284
+            return false;
285
+        }
286 286
 
287
-		/**
288
-		 * Check if in module list can have this language
289
-		 * @param  string $language the language name
290
-		 * @param string $module the module name
291
-		 * @param string $appLang the application language like 'en', 'fr'
292
-		 * @return boolean|string  false or null if no module have this language,  return the full path of this language
293
-		 */
294
-		public static function findLanguageFullPath($language, $module = null, $appLang){
295
-			$logger = self::getLogger();
296
-			if(! self::hasModule()){
297
-				$logger->info('No module was loaded skiping.');
298
-				return false;
299
-			}
300
-			$language = str_ireplace('.php', '', $language);
301
-			$language = str_ireplace('lang_', '', $language);
302
-			$file = 'lang_'.$language.'.php';
303
-			$logger->debug('Checking language [' . $language . '] in module [' .$module. '] ...');
304
-			$filePath = MODULE_PATH . $module . DS . 'lang' . DS . $appLang . DS . $file;
305
-			if(file_exists($filePath)){
306
-				$logger->info('Found language [' . $language . '] in module [' .$module. '], the file path is [' .$filePath. ']');
307
-				return $filePath;
308
-			}
309
-			$logger->info('Language [' . $language . '] does not exist in the module [' .$module. ']');
310
-			return false;
311
-		}
287
+        /**
288
+         * Check if in module list can have this language
289
+         * @param  string $language the language name
290
+         * @param string $module the module name
291
+         * @param string $appLang the application language like 'en', 'fr'
292
+         * @return boolean|string  false or null if no module have this language,  return the full path of this language
293
+         */
294
+        public static function findLanguageFullPath($language, $module = null, $appLang){
295
+            $logger = self::getLogger();
296
+            if(! self::hasModule()){
297
+                $logger->info('No module was loaded skiping.');
298
+                return false;
299
+            }
300
+            $language = str_ireplace('.php', '', $language);
301
+            $language = str_ireplace('lang_', '', $language);
302
+            $file = 'lang_'.$language.'.php';
303
+            $logger->debug('Checking language [' . $language . '] in module [' .$module. '] ...');
304
+            $filePath = MODULE_PATH . $module . DS . 'lang' . DS . $appLang . DS . $file;
305
+            if(file_exists($filePath)){
306
+                $logger->info('Found language [' . $language . '] in module [' .$module. '], the file path is [' .$filePath. ']');
307
+                return $filePath;
308
+            }
309
+            $logger->info('Language [' . $language . '] does not exist in the module [' .$module. ']');
310
+            return false;
311
+        }
312 312
 
313
-		/**
314
-		 * Get the list of module loaded
315
-		 * @return array the module list
316
-		 */
317
-		public static function getModuleList(){
318
-			return self::$list;
319
-		}
313
+        /**
314
+         * Get the list of module loaded
315
+         * @return array the module list
316
+         */
317
+        public static function getModuleList(){
318
+            return self::$list;
319
+        }
320 320
 
321
-		/**
322
-		 * Check if the application has an module
323
-		 * @return boolean
324
-		 */
325
-		public static function hasModule(){
326
-			return !empty(self::$list);
327
-		}
321
+        /**
322
+         * Check if the application has an module
323
+         * @return boolean
324
+         */
325
+        public static function hasModule(){
326
+            return !empty(self::$list);
327
+        }
328 328
 
329
-	}
329
+    }
Please login to merge, or discard this patch.
Spacing   +69 added lines, -69 removed lines patch added patch discarded remove patch
@@ -24,7 +24,7 @@  discard block
 block discarded – undo
24 24
      * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
25 25
     */
26 26
    
27
-	class Module{
27
+	class Module {
28 28
 		
29 29
 		/**
30 30
 		 * list of loaded module
@@ -42,9 +42,9 @@  discard block
 block discarded – undo
42 42
 		 * The signleton of the logger
43 43
 		 * @return Object the Log instance
44 44
 		 */
45
-		private static function getLogger(){
46
-			if(self::$logger == null){
47
-				self::$logger[0] =& class_loader('Log', 'classes');
45
+		private static function getLogger() {
46
+			if (self::$logger == null) {
47
+				self::$logger[0] = & class_loader('Log', 'classes');
48 48
 				self::$logger[0]->setLogger('Library::Module');
49 49
 			}
50 50
 			return self::$logger[0];
@@ -53,24 +53,24 @@  discard block
 block discarded – undo
53 53
 		/**
54 54
 		 * Initialise the module list by scanning the directory MODULE_PATH
55 55
 		 */
56
-		public function init(){
56
+		public function init() {
57 57
 			$logger = self::getLogger();
58 58
 			$logger->debug('Check if the application contains the modules ...');
59 59
 			$moduleDir = opendir(MODULE_PATH);
60
-			if(is_resource($moduleDir)){
61
-				while(($module = readdir($moduleDir)) !== false){
62
-					if(preg_match('/^([a-z0-9-_]+)$/i', $module) && is_dir(MODULE_PATH . $module)){
60
+			if (is_resource($moduleDir)) {
61
+				while (($module = readdir($moduleDir)) !== false) {
62
+					if (preg_match('/^([a-z0-9-_]+)$/i', $module) && is_dir(MODULE_PATH . $module)) {
63 63
 						self::$list[] = $module;
64 64
 					}
65
-					else{
66
-						$logger->info('Skipping [' .$module. '], may be this is not a directory or does not exists or is invalid name');
65
+					else {
66
+						$logger->info('Skipping [' . $module . '], may be this is not a directory or does not exists or is invalid name');
67 67
 					}
68 68
 				}
69 69
 				closedir($moduleDir);
70 70
 			}
71 71
 			ksort(self::$list);
72 72
 			
73
-			if(self::hasModule()){
73
+			if (self::hasModule()) {
74 74
 				$logger->info('The application contains the module below [' . implode(', ', self::getModuleList()) . ']');
75 75
 			}
76 76
 		}
@@ -79,9 +79,9 @@  discard block
 block discarded – undo
79 79
 		 * Get the list of the custom autoload configuration from module if exists
80 80
 		 * @return array|boolean the autoload configurations list or false if no module contains the autoload configuration values
81 81
 		 */
82
-		public static function getModulesAutoloadConfig(){
82
+		public static function getModulesAutoloadConfig() {
83 83
 			$logger = self::getLogger();
84
-			if(! self::hasModule()){
84
+			if (!self::hasModule()) {
85 85
 				$logger->info('No module was loaded skipping.');
86 86
 				return false;
87 87
 			}
@@ -94,10 +94,10 @@  discard block
 block discarded – undo
94 94
 			
95 95
 			foreach (self::$list as $module) {
96 96
 				$file = MODULE_PATH . $module . DS . 'config' . DS . 'autoload.php';
97
-				if(file_exists($file)){
97
+				if (file_exists($file)) {
98 98
 					$autoload = array();
99 99
 					require_once $file;
100
-					if(! empty($autoload) && is_array($autoload)){
100
+					if (!empty($autoload) && is_array($autoload)) {
101 101
 						$autoloads = array_merge_recursive($autoloads, $autoload);
102 102
 						unset($autoload);
103 103
 					}
@@ -110,19 +110,19 @@  discard block
 block discarded – undo
110 110
 		 * Get the list of the custom routes configuration from module if exists
111 111
 		 * @return array|boolean the routes list or false if no module contains the routes configuration
112 112
 		 */
113
-		public static function getModulesRoutes(){
113
+		public static function getModulesRoutes() {
114 114
 			$logger = self::getLogger();
115
-			if(! self::hasModule()){
115
+			if (!self::hasModule()) {
116 116
 				$logger->info('No module was loaded skipping.');
117 117
 				return false;
118 118
 			}
119 119
 			$routes = array();
120 120
 			foreach (self::$list as $module) {
121 121
 				$file = MODULE_PATH . $module . DS . 'config' . DS . 'routes.php';
122
-				if(file_exists($file)){
122
+				if (file_exists($file)) {
123 123
 					$route = array();
124 124
 					require_once $file;
125
-					if(! empty($route) && is_array($route)){
125
+					if (!empty($route) && is_array($route)) {
126 126
 						$routes = array_merge($routes, $route);
127 127
 						unset($route);
128 128
 					}
@@ -138,22 +138,22 @@  discard block
 block discarded – undo
138 138
 		 * @param  string $module  the module name
139 139
 		 * @return boolean|string  false or null if no module have this controller, path the full path of the controller
140 140
 		 */
141
-		public static function findControllerFullPath($class, $module = null){
141
+		public static function findControllerFullPath($class, $module = null) {
142 142
 			$logger = self::getLogger();
143
-			if(! self::hasModule()){
143
+			if (!self::hasModule()) {
144 144
 				$logger->info('No module was loaded skiping.');
145 145
 				return false;
146 146
 			}
147 147
 			$class = str_ireplace('.php', '', $class);
148 148
 			$class = ucfirst($class);
149
-			$classFile = $class.'.php';
150
-			$logger->debug('Checking the controller [' . $class . '] in module [' .$module. '] ...');
149
+			$classFile = $class . '.php';
150
+			$logger->debug('Checking the controller [' . $class . '] in module [' . $module . '] ...');
151 151
 			$filePath = MODULE_PATH . $module . DS . 'controllers' . DS . $classFile;
152
-			if(file_exists($filePath)){
153
-				$logger->info('Found controller [' . $class . '] in module [' .$module. '], the file path is [' .$filePath. ']');
152
+			if (file_exists($filePath)) {
153
+				$logger->info('Found controller [' . $class . '] in module [' . $module . '], the file path is [' . $filePath . ']');
154 154
 				return $filePath;
155 155
 			}
156
-			$logger->info('Controller [' . $class . '] does not exist in the module [' .$module. ']');
156
+			$logger->info('Controller [' . $class . '] does not exist in the module [' . $module . ']');
157 157
 			return false;
158 158
 		}
159 159
 
@@ -163,22 +163,22 @@  discard block
 block discarded – undo
163 163
 		 * @param string $module the module name
164 164
 		 * @return boolean|string  false or null if no module have this model, return the full path of this model
165 165
 		 */
166
-		public static function findModelFullPath($class, $module = null){
166
+		public static function findModelFullPath($class, $module = null) {
167 167
 			$logger = self::getLogger();
168
-			if(! self::hasModule()){
168
+			if (!self::hasModule()) {
169 169
 				$logger->info('No module was loaded skiping.');
170 170
 				return false;
171 171
 			}
172 172
 			$class = str_ireplace('.php', '', $class);
173 173
 			$class = ucfirst($class);
174
-			$classFile = $class.'.php';
175
-			$logger->debug('Checking model [' . $class . '] in module [' .$module. '] ...');
174
+			$classFile = $class . '.php';
175
+			$logger->debug('Checking model [' . $class . '] in module [' . $module . '] ...');
176 176
 			$filePath = MODULE_PATH . $module . DS . 'models' . DS . $classFile;
177
-			if(file_exists($filePath)){
178
-				$logger->info('Found model [' . $class . '] in module [' .$module. '], the file path is [' .$filePath. ']');
177
+			if (file_exists($filePath)) {
178
+				$logger->info('Found model [' . $class . '] in module [' . $module . '], the file path is [' . $filePath . ']');
179 179
 				return $filePath;
180 180
 			}
181
-			$logger->info('Model [' . $class . '] does not exist in the module [' .$module. ']');
181
+			$logger->info('Model [' . $class . '] does not exist in the module [' . $module . ']');
182 182
 			return false;
183 183
 		}
184 184
 		
@@ -188,21 +188,21 @@  discard block
 block discarded – undo
188 188
 		 * @param string $module the module name
189 189
 		 * @return boolean|string  false or null if no module have this configuration,  return the full path of this configuration
190 190
 		 */
191
-		public static function findConfigFullPath($configuration, $module = null){
191
+		public static function findConfigFullPath($configuration, $module = null) {
192 192
 			$logger = self::getLogger();
193
-			if(! self::hasModule()){
193
+			if (!self::hasModule()) {
194 194
 				$logger->info('No module was loaded skiping.');
195 195
 				return false;
196 196
 			}
197 197
 			$configuration = str_ireplace('.php', '', $configuration);
198
-			$file = $configuration.'.php';
199
-			$logger->debug('Checking configuration [' . $configuration . '] in module [' .$module. '] ...');
198
+			$file = $configuration . '.php';
199
+			$logger->debug('Checking configuration [' . $configuration . '] in module [' . $module . '] ...');
200 200
 			$filePath = MODULE_PATH . $module . DS . 'config' . DS . $file;
201
-			if(file_exists($filePath)){
202
-				$logger->info('Found configuration [' . $configuration . '] in module [' .$module. '], the file path is [' .$filePath. ']');
201
+			if (file_exists($filePath)) {
202
+				$logger->info('Found configuration [' . $configuration . '] in module [' . $module . '], the file path is [' . $filePath . ']');
203 203
 				return $filePath;
204 204
 			}
205
-			$logger->info('Configuration [' . $configuration . '] does not exist in the module [' .$module. ']');
205
+			$logger->info('Configuration [' . $configuration . '] does not exist in the module [' . $module . ']');
206 206
 			return false;
207 207
 		}
208 208
 
@@ -212,22 +212,22 @@  discard block
 block discarded – undo
212 212
 		 * @param string $module the module name
213 213
 		 * @return boolean|string  false or null if no module have this helper,  return the full path of this helper
214 214
 		 */
215
-		public static function findFunctionFullPath($helper, $module = null){
215
+		public static function findFunctionFullPath($helper, $module = null) {
216 216
 			$logger = self::getLogger();
217
-			if(! self::hasModule()){
217
+			if (!self::hasModule()) {
218 218
 				$logger->info('No module was loaded skiping.');
219 219
 				return false;
220 220
 			}
221 221
 			$helper = str_ireplace('.php', '', $helper);
222 222
 			$helper = str_ireplace('function_', '', $helper);
223
-			$file = 'function_'.$helper.'.php';
224
-			$logger->debug('Checking helper [' . $helper . '] in module [' .$module. '] ...');
223
+			$file = 'function_' . $helper . '.php';
224
+			$logger->debug('Checking helper [' . $helper . '] in module [' . $module . '] ...');
225 225
 			$filePath = MODULE_PATH . $module . DS . 'functions' . DS . $file;
226
-			if(file_exists($filePath)){
227
-				$logger->info('Found helper [' . $helper . '] in module [' .$module. '], the file path is [' .$filePath. ']');
226
+			if (file_exists($filePath)) {
227
+				$logger->info('Found helper [' . $helper . '] in module [' . $module . '], the file path is [' . $filePath . ']');
228 228
 				return $filePath;
229 229
 			}
230
-			$logger->info('Helper [' . $helper . '] does not exist in the module [' .$module. ']');
230
+			$logger->info('Helper [' . $helper . '] does not exist in the module [' . $module . ']');
231 231
 			return false;
232 232
 			
233 233
 		}
@@ -239,21 +239,21 @@  discard block
 block discarded – undo
239 239
 		 * @param string $module the module name
240 240
 		 * @return boolean|string  false or null if no module have this library,  return the full path of this library
241 241
 		 */
242
-		public static function findLibraryFullPath($class, $module = null){
242
+		public static function findLibraryFullPath($class, $module = null) {
243 243
 			$logger = self::getLogger();
244
-			if(! self::hasModule()){
244
+			if (!self::hasModule()) {
245 245
 				$logger->info('No module was loaded skiping.');
246 246
 				return false;
247 247
 			}
248 248
 			$class = str_ireplace('.php', '', $class);
249
-			$file = $class.'.php';
250
-			$logger->debug('Checking library [' . $class . '] in module [' .$module. '] ...');
249
+			$file = $class . '.php';
250
+			$logger->debug('Checking library [' . $class . '] in module [' . $module . '] ...');
251 251
 			$filePath = MODULE_PATH . $module . DS . 'libraries' . DS . $file;
252
-			if(file_exists($filePath)){
253
-				$logger->info('Found library [' . $class . '] in module [' .$module. '], the file path is [' .$filePath. ']');
252
+			if (file_exists($filePath)) {
253
+				$logger->info('Found library [' . $class . '] in module [' . $module . '], the file path is [' . $filePath . ']');
254 254
 				return $filePath;
255 255
 			}
256
-			$logger->info('Library [' . $class . '] does not exist in the module [' .$module. ']');
256
+			$logger->info('Library [' . $class . '] does not exist in the module [' . $module . ']');
257 257
 			return false;
258 258
 		}
259 259
 
@@ -264,9 +264,9 @@  discard block
 block discarded – undo
264 264
 		 * @param string $module the module name to check
265 265
 		 * @return boolean|string  false or null if no module have this view, path the full path of the view
266 266
 		 */
267
-		public static function findViewFullPath($view, $module = null){
267
+		public static function findViewFullPath($view, $module = null) {
268 268
 			$logger = self::getLogger();
269
-			if(! self::hasModule()){
269
+			if (!self::hasModule()) {
270 270
 				$logger->info('No module was loaded skiping.');
271 271
 				return false;
272 272
 			}
@@ -274,13 +274,13 @@  discard block
 block discarded – undo
274 274
 			$view = trim($view, '/\\');
275 275
 			$view = str_ireplace('/', DS, $view);
276 276
 			$viewFile = $view . '.php';
277
-			$logger->debug('Checking view [' . $view . '] in module [' .$module. '] ...');
277
+			$logger->debug('Checking view [' . $view . '] in module [' . $module . '] ...');
278 278
 			$filePath = MODULE_PATH . $module . DS . 'views' . DS . $viewFile;
279
-			if(file_exists($filePath)){
280
-				$logger->info('Found view [' . $view . '] in module [' .$module. '], the file path is [' .$filePath. ']');
279
+			if (file_exists($filePath)) {
280
+				$logger->info('Found view [' . $view . '] in module [' . $module . '], the file path is [' . $filePath . ']');
281 281
 				return $filePath;
282 282
 			}
283
-			$logger->info('View [' . $view . '] does not exist in the module [' .$module. ']');
283
+			$logger->info('View [' . $view . '] does not exist in the module [' . $module . ']');
284 284
 			return false;
285 285
 		}
286 286
 
@@ -291,22 +291,22 @@  discard block
 block discarded – undo
291 291
 		 * @param string $appLang the application language like 'en', 'fr'
292 292
 		 * @return boolean|string  false or null if no module have this language,  return the full path of this language
293 293
 		 */
294
-		public static function findLanguageFullPath($language, $module = null, $appLang){
294
+		public static function findLanguageFullPath($language, $module = null, $appLang) {
295 295
 			$logger = self::getLogger();
296
-			if(! self::hasModule()){
296
+			if (!self::hasModule()) {
297 297
 				$logger->info('No module was loaded skiping.');
298 298
 				return false;
299 299
 			}
300 300
 			$language = str_ireplace('.php', '', $language);
301 301
 			$language = str_ireplace('lang_', '', $language);
302
-			$file = 'lang_'.$language.'.php';
303
-			$logger->debug('Checking language [' . $language . '] in module [' .$module. '] ...');
302
+			$file = 'lang_' . $language . '.php';
303
+			$logger->debug('Checking language [' . $language . '] in module [' . $module . '] ...');
304 304
 			$filePath = MODULE_PATH . $module . DS . 'lang' . DS . $appLang . DS . $file;
305
-			if(file_exists($filePath)){
306
-				$logger->info('Found language [' . $language . '] in module [' .$module. '], the file path is [' .$filePath. ']');
305
+			if (file_exists($filePath)) {
306
+				$logger->info('Found language [' . $language . '] in module [' . $module . '], the file path is [' . $filePath . ']');
307 307
 				return $filePath;
308 308
 			}
309
-			$logger->info('Language [' . $language . '] does not exist in the module [' .$module. ']');
309
+			$logger->info('Language [' . $language . '] does not exist in the module [' . $module . ']');
310 310
 			return false;
311 311
 		}
312 312
 
@@ -314,7 +314,7 @@  discard block
 block discarded – undo
314 314
 		 * Get the list of module loaded
315 315
 		 * @return array the module list
316 316
 		 */
317
-		public static function getModuleList(){
317
+		public static function getModuleList() {
318 318
 			return self::$list;
319 319
 		}
320 320
 
@@ -322,7 +322,7 @@  discard block
 block discarded – undo
322 322
 		 * Check if the application has an module
323 323
 		 * @return boolean
324 324
 		 */
325
-		public static function hasModule(){
325
+		public static function hasModule() {
326 326
 			return !empty(self::$list);
327 327
 		}
328 328
 
Please login to merge, or discard this patch.
Braces   +1 added lines, -2 removed lines patch added patch discarded remove patch
@@ -61,8 +61,7 @@
 block discarded – undo
61 61
 				while(($module = readdir($moduleDir)) !== false){
62 62
 					if(preg_match('/^([a-z0-9-_]+)$/i', $module) && is_dir(MODULE_PATH . $module)){
63 63
 						self::$list[] = $module;
64
-					}
65
-					else{
64
+					} else{
66 65
 						$logger->info('Skipping [' .$module. '], may be this is not a directory or does not exists or is invalid name');
67 66
 					}
68 67
 				}
Please login to merge, or discard this patch.