Passed
Push — main ( cd5745...cfa081 )
by Sílvio
10:20 queued 07:29
created
src/Helpers/SqliteHelper.php 1 patch
Indentation   +9 added lines, -9 removed lines patch added patch discarded remove patch
@@ -36,9 +36,9 @@  discard block
 block discarded – undo
36 36
     }
37 37
 
38 38
     /**
39
-    * @param string $databaseDir
40
-    * @return void
41
-    */
39
+     * @param string $databaseDir
40
+     * @return void
41
+     */
42 42
     private static function createDatabaseDir(string $databaseDir)
43 43
     {
44 44
         if (!is_dir($databaseDir)) {
@@ -47,9 +47,9 @@  discard block
 block discarded – undo
47 47
     }
48 48
 
49 49
     /**
50
-    * @param string $dbFile
51
-    * @return void
52
-    */
50
+     * @param string $dbFile
51
+     * @return void
52
+     */
53 53
     private static function createDatabaseFile(string $dbFile)
54 54
     {
55 55
         if (!file_exists($dbFile)) {
@@ -58,9 +58,9 @@  discard block
 block discarded – undo
58 58
     }
59 59
 
60 60
     /**
61
-    * @param string $database
62
-    * @return string
63
-    */
61
+     * @param string $database
62
+     * @return string
63
+     */
64 64
     private static function checkExtension(string $database)
65 65
     {
66 66
         if (strpos($database, '.sqlite') === false) {
Please login to merge, or discard this patch.
src/Utils/CacheDataFormatter.php 1 patch
Indentation   +8 added lines, -8 removed lines patch added patch discarded remove patch
@@ -18,8 +18,8 @@  discard block
 block discarded – undo
18 18
     }
19 19
 
20 20
     /**
21
-    * @return string|false
22
-    */
21
+     * @return string|false
22
+     */
23 23
     public function toJson()
24 24
     {
25 25
         return json_encode(
@@ -31,24 +31,24 @@  discard block
 block discarded – undo
31 31
     }
32 32
 
33 33
     /**
34
-    * @return array
35
-    */
34
+     * @return array
35
+     */
36 36
     public function toArray()
37 37
     {
38 38
         return (array)$this->data;
39 39
     }
40 40
 
41 41
     /**
42
-    * @return string
43
-    */
42
+     * @return string
43
+     */
44 44
     public function toString()
45 45
     {
46 46
         return (string)$this->data;
47 47
     }
48 48
 
49 49
     /**
50
-    * @return object
51
-    */
50
+     * @return object
51
+     */
52 52
     public function toObject()
53 53
     {
54 54
         return (object)$this->data;
Please login to merge, or discard this patch.
src/Utils/CacheLogger.php 1 patch
Indentation   +17 added lines, -17 removed lines patch added patch discarded remove patch
@@ -23,49 +23,49 @@  discard block
 block discarded – undo
23 23
     }
24 24
 
25 25
     /**
26
-    * @return void
27
-    */
26
+     * @return void
27
+     */
28 28
     public function info($message)
29 29
     {
30 30
         $this->log('INFO', $message);
31 31
     }
32 32
 
33 33
     /**
34
-    * @return void
35
-    */
34
+     * @return void
35
+     */
36 36
     public function warning($message)
37 37
     {
38 38
         $this->log('WARNING', $message);
39 39
     }
40 40
 
41 41
     /**
42
-    * @return void
43
-    */
42
+     * @return void
43
+     */
44 44
     public function error($message)
45 45
     {
46 46
         $this->log('ERROR', $message);
47 47
     }
48 48
 
49 49
     /**
50
-    * @return void
51
-    */
50
+     * @return void
51
+     */
52 52
     public function debug($message)
53 53
     {
54 54
         $this->log('DEBUG', $message);
55 55
     }
56 56
 
57 57
     /**
58
-    * @param mixed $level
59
-    * @return string|int|false
60
-    */
58
+     * @param mixed $level
59
+     * @return string|int|false
60
+     */
61 61
     private function shouldLog(mixed $level)
62 62
     {
63 63
         return array_search($level, $this->logLevels) >= array_search($this->logLevel, $this->logLevels);
64 64
     }
65 65
 
66 66
     /**
67
-    * @return void
68
-    */
67
+     * @return void
68
+     */
69 69
     private function rotateLog()
70 70
     {
71 71
         if (file_exists($this->logFile) && filesize($this->logFile) >= $this->maxFileSize) {
@@ -75,10 +75,10 @@  discard block
 block discarded – undo
75 75
     }
76 76
 
77 77
     /**
78
-    * @param mixed $level
79
-    * @param string $message
80
-    * @return void
81
-    */
78
+     * @param mixed $level
79
+     * @param string $message
80
+     * @return void
81
+     */
82 82
     private function log($level, $message)
83 83
     {
84 84
         if (!$this->shouldLog($level)) {
Please login to merge, or discard this patch.
src/CacheStore/FileCacheStore.php 1 patch
Indentation   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -46,13 +46,13 @@
 block discarded – undo
46 46
     private string $lastFlushTimeFile;
47 47
 
48 48
     /**
49
-    * @var CacheLogger
50
-    */
49
+     * @var CacheLogger
50
+     */
51 51
     private $logger = null;
52 52
 
53 53
     /**
54
-    * @var FileCacheManager
55
-    */
54
+     * @var FileCacheManager
55
+     */
56 56
     private FileCacheManager $fileManager;
57 57
 
58 58
     public function __construct(array $options = [])
Please login to merge, or discard this patch.
src/Repositories/CacheDatabaseRepository.php 1 patch
Indentation   +12 added lines, -12 removed lines patch added patch discarded remove patch
@@ -48,10 +48,10 @@  discard block
 block discarded – undo
48 48
     }
49 49
 
50 50
     /**
51
-    * @param string $cacheKey
52
-    * @param string $namespace
53
-    * @return mixed
54
-    */
51
+     * @param string $cacheKey
52
+     * @param string $namespace
53
+     * @return mixed
54
+     */
55 55
     public function retrieve(string $cacheKey, string $namespace = '')
56 56
     {
57 57
         $driver = $this->connection->getAttribute(PDO::ATTR_DRIVER_NAME);
@@ -105,11 +105,11 @@  discard block
 block discarded – undo
105 105
     }
106 106
 
107 107
     /**
108
-    * @param string $cacheKey
109
-    * @param string|int $ttl
110
-    * @param string $namespace
111
-    * @return bool
112
-    */
108
+     * @param string $cacheKey
109
+     * @param string|int $ttl
110
+     * @param string $namespace
111
+     * @return bool
112
+     */
113 113
     public function renew(string $cacheKey, string|int $ttl, string $namespace = '')
114 114
     {
115 115
         $currentTime = date('Y-m-d H:i:s');
@@ -163,9 +163,9 @@  discard block
 block discarded – undo
163 163
     }
164 164
 
165 165
     /**
166
-    * @param string $driver
167
-    * @return string
168
-    */
166
+     * @param string $driver
167
+     * @return string
168
+     */
169 169
     private function getCurrentDateTime(string $driver)
170 170
     {
171 171
         return ($driver === 'sqlite') ? "DATETIME('now', 'localtime')" : "NOW()";
Please login to merge, or discard this patch.
Examples/example08.php 1 patch
Indentation   +3 added lines, -3 removed lines patch added patch discarded remove patch
@@ -23,15 +23,15 @@
 block discarded – undo
23 23
     echo "Cache Found: ";
24 24
     print_r($Cacheer->getCache($cacheKey));
25 25
 } else {
26
-  echo $Cacheer->getMessage();
26
+    echo $Cacheer->getMessage();
27 27
 }
28 28
 
29 29
 // Renovando os dados do cache
30 30
 $Cacheer->renewCache($cacheKey, 3600);
31 31
 
32 32
 if($Cacheer->isSuccess()){
33
-  echo $Cacheer->getMessage() . PHP_EOL;
33
+    echo $Cacheer->getMessage() . PHP_EOL;
34 34
 } else {
35
-  echo $Cacheer->getMessage() . PHP_EOL;
35
+    echo $Cacheer->getMessage() . PHP_EOL;
36 36
 
37 37
 }
38 38
\ No newline at end of file
Please login to merge, or discard this patch.
Examples/example07.php 1 patch
Indentation   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -29,7 +29,7 @@  discard block
 block discarded – undo
29 29
     echo "Cache Found: ";
30 30
     print_r($Cacheer->getCache($cacheKey));
31 31
 } else {
32
-  echo $Cacheer->getMessage();
32
+    echo $Cacheer->getMessage();
33 33
 }
34 34
 
35 35
 
@@ -40,6 +40,6 @@  discard block
 block discarded – undo
40 40
     echo $Cacheer->getMessage() . PHP_EOL;
41 41
     print_r($Cacheer->getCache($cacheKey));
42 42
 } else {
43
-  echo $Cacheer->getMessage();
43
+    echo $Cacheer->getMessage();
44 44
 }
45 45
 
Please login to merge, or discard this patch.
src/CacheStore/RedisCacheStore.php 1 patch
Indentation   +187 added lines, -187 removed lines patch added patch discarded remove patch
@@ -16,93 +16,93 @@  discard block
 block discarded – undo
16 16
  */
17 17
 class RedisCacheStore implements CacheerInterface
18 18
 {
19
-  /** @var */
20
-  private $redis;
19
+    /** @var */
20
+    private $redis;
21 21
 
22
-  /** @param string $namespace */
23
-  private string $namespace = '';
22
+    /** @param string $namespace */
23
+    private string $namespace = '';
24 24
 
25
-  /**
26
-  * @var CacheLogger
27
-  */
28
-  private $logger = null;
25
+    /**
26
+     * @var CacheLogger
27
+     */
28
+    private $logger = null;
29 29
 
30
-  /**
31
-  * @var string
32
-  */
33
-  private string $message = '';
30
+    /**
31
+     * @var string
32
+     */
33
+    private string $message = '';
34 34
 
35
-  /**
36
-  * @var boolean
37
-  */
38
-  private bool $success = false;
35
+    /**
36
+     * @var boolean
37
+     */
38
+    private bool $success = false;
39 39
 
40 40
 
41
-  /**
42
-  * @return void
43
-  */
44
-  public function __construct(string $logPath)
45
-  {
41
+    /**
42
+     * @return void
43
+     */
44
+    public function __construct(string $logPath)
45
+    {
46 46
     $this->redis = RedisCacheManager::connect();
47 47
     $this->logger = new CacheLogger($logPath);
48
-  }
49
-
50
-  /**
51
-  * @param string $cacheKey
52
-  * @param string $namespace
53
-  * @param string|int $ttl
54
-  * @return mixed
55
-  */
56
-  public function getCache(string $cacheKey, string $namespace = '', string|int $ttl = 3600)
57
-  {
48
+    }
49
+
50
+    /**
51
+     * @param string $cacheKey
52
+     * @param string $namespace
53
+     * @param string|int $ttl
54
+     * @return mixed
55
+     */
56
+    public function getCache(string $cacheKey, string $namespace = '', string|int $ttl = 3600)
57
+    {
58 58
     $fullCacheKey = $this->buildKey($cacheKey, $namespace);
59 59
     $cacheData = $this->redis->get($fullCacheKey);
60 60
 
61 61
     if($cacheData) {
62
-      $this->setMessage("Cache retrieved successfully", true);
63
-      $this->logger->debug("{$this->getMessage()} from redis driver.");
64
-      return CacheRedisHelper::serialize($cacheData, false);
62
+        $this->setMessage("Cache retrieved successfully", true);
63
+        $this->logger->debug("{$this->getMessage()} from redis driver.");
64
+        return CacheRedisHelper::serialize($cacheData, false);
65 65
     }
66 66
 
67 67
     $this->setMessage("CacheData not found, does not exists or expired", false);
68 68
     $this->logger->info("{$this->getMessage()} from redis driver.");
69
-  }
70
-
71
-  /**
72
-  * Armazena um item no cache Redis, com suporte a namespace e TTL opcional.
73
-  *
74
-  * @param string $cacheKey
75
-  * @param mixed  $cacheData
76
-  * @param string $namespace
77
-  * @param string|int|null $ttl
78
-  * @return mixed
79
-  */
80
-  public function putCache(string $cacheKey, mixed $cacheData, string $namespace = '', string|int|null $ttl = null)
81
-  {
82
-      $cacheFullKey = $this->buildKey($cacheKey, $namespace);
83
-      $serializedData = CacheRedisHelper::serialize($cacheData);
84
-
85
-      $result = $ttl ? $this->redis->setex($cacheFullKey, (int) $ttl, $serializedData) 
69
+    }
70
+
71
+    /**
72
+     * Armazena um item no cache Redis, com suporte a namespace e TTL opcional.
73
+     *
74
+     * @param string $cacheKey
75
+     * @param mixed  $cacheData
76
+     * @param string $namespace
77
+     * @param string|int|null $ttl
78
+     * @return mixed
79
+     */
80
+    public function putCache(string $cacheKey, mixed $cacheData, string $namespace = '', string|int|null $ttl = null)
81
+    {
82
+        $cacheFullKey = $this->buildKey($cacheKey, $namespace);
83
+        $serializedData = CacheRedisHelper::serialize($cacheData);
84
+
85
+        $result = $ttl ? $this->redis->setex($cacheFullKey, (int) $ttl, $serializedData) 
86 86
                     : $this->redis->set($cacheFullKey, $serializedData);
87 87
 
88
-      if ($result) {
89
-          $this->setMessage("Cache stored successfully", true);
90
-      } else {
91
-          $this->setMessage("Failed to store cache", false);
92
-      }
88
+        if ($result) {
89
+            $this->setMessage("Cache stored successfully", true);
90
+        } else {
91
+            $this->setMessage("Failed to store cache", false);
92
+        }
93 93
 
94
-      $this->logger->debug("{$this->getMessage()} from Redis driver.");
95
-      return $result;
96
-  }
94
+        $this->logger->debug("{$this->getMessage()} from Redis driver.");
95
+        return $result;
96
+    }
97 97
 
98 98
 
99
-  /**
100
-  * @param string $cacheKey
101
-  * @param string $namespace
102
-  * @return void
103
-  */
104
-  public function clearCache(string $cacheKey, string $namespace = '')
105
-  {
99
+    /**
100
+     * @param string $cacheKey
101
+     * @param string $namespace
102
+     * @return void
103
+     */
104
+    public function clearCache(string $cacheKey, string $namespace = '')
105
+    {
106 106
     $cacheFullKey = $this->buildKey($cacheKey, $namespace);
107 107
 
108 108
 
@@ -114,107 +114,107 @@  discard block
 block discarded – undo
114 114
 
115 115
 
116 116
     $this->logger->debug("{$this->getMessage()} from redis driver.");
117
-  }
118
-
119
-  /**
120
-  * @param string $cacheKey
121
-  * @param string $namespace
122
-  * @return void
123
-  */
124
-  public function has(string $cacheKey, string $namespace = '')
125
-  {
117
+    }
118
+
119
+    /**
120
+     * @param string $cacheKey
121
+     * @param string $namespace
122
+     * @return void
123
+     */
124
+    public function has(string $cacheKey, string $namespace = '')
125
+    {
126 126
     $cacheFullKey = $this->buildKey($cacheKey, $namespace);
127 127
 
128 128
     if($this->redis->exists($cacheFullKey) > 0) {
129 129
         $this->setMessage("Cache Key: {$cacheKey} exists!", true);
130 130
     } else {
131 131
         $this->setMessage("Cache Key: {$cacheKey} does not exists!", false);
132
-      }
132
+        }
133 133
 
134 134
     $this->logger->debug("{$this->getMessage()} from redis driver.");
135
-  }
136
-
137
-  /**
138
-  * @param string $cacheKey
139
-  * @param string|int $ttl
140
-  * @param string $namespace
141
-  * @return void
142
-  */
143
-  public function renewCache(string $cacheKey, string|int $ttl, string $namespace = '')
144
-  {
145
-      $cacheFullKey = $this->buildKey($cacheKey, $namespace);
146
-      $dump = $this->getDump($cacheFullKey);
147
-
148
-      if (!$dump) {
149
-          $this->setMessage("Cache Key: {$cacheKey} not found.", false);
150
-          $this->logger->warning("{$this->getMessage()} from Redis driver.");
151
-          return;
152
-      }
153
-
154
-      $this->clearCache($cacheFullKey);
155
-
156
-      if ($this->restoreKey($cacheFullKey, $ttl, $dump)) {
157
-          $this->setMessage("Cache Key: {$cacheKey} renewed successfully.", true);
158
-          $this->logger->debug("{$this->getMessage()} from Redis driver.");
159
-      } else {
160
-          $this->setMessage("Failed to renew cache key: {$cacheKey}.", false);
161
-          $this->logger->error("{$this->getMessage()} from Redis driver.");
162
-      }
163
-  }
164
-
165
-
166
-  /**
167
-  * @param string $cacheKey
168
-  * @param mixed  $cacheData
169
-  * @param string $namespace
170
-  * @return void
171
-  */
172
-  public function appendCache(string $cacheKey, mixed $cacheData, string $namespace = '')
173
-  {
174
-      $cacheFullKey = $this->buildKey($cacheKey, $namespace);
175
-      $existingData = $this->getCache($cacheFullKey);
176
-
177
-      $mergedCacheData = CacheRedisHelper::arrayIdentifier($existingData, $cacheData);
178
-
179
-      $serializedData = CacheRedisHelper::serialize($mergedCacheData);
180
-
181
-      if ($this->redis->set($cacheFullKey, $serializedData)) {
182
-          $this->setMessage("Cache appended successfully", true);
183
-      } else {
184
-          $this->setMessage("Something went wrong. Please, try again.", false);
185
-      }
135
+    }
136
+
137
+    /**
138
+     * @param string $cacheKey
139
+     * @param string|int $ttl
140
+     * @param string $namespace
141
+     * @return void
142
+     */
143
+    public function renewCache(string $cacheKey, string|int $ttl, string $namespace = '')
144
+    {
145
+        $cacheFullKey = $this->buildKey($cacheKey, $namespace);
146
+        $dump = $this->getDump($cacheFullKey);
147
+
148
+        if (!$dump) {
149
+            $this->setMessage("Cache Key: {$cacheKey} not found.", false);
150
+            $this->logger->warning("{$this->getMessage()} from Redis driver.");
151
+            return;
152
+        }
153
+
154
+        $this->clearCache($cacheFullKey);
155
+
156
+        if ($this->restoreKey($cacheFullKey, $ttl, $dump)) {
157
+            $this->setMessage("Cache Key: {$cacheKey} renewed successfully.", true);
158
+            $this->logger->debug("{$this->getMessage()} from Redis driver.");
159
+        } else {
160
+            $this->setMessage("Failed to renew cache key: {$cacheKey}.", false);
161
+            $this->logger->error("{$this->getMessage()} from Redis driver.");
162
+        }
163
+    }
164
+
165
+
166
+    /**
167
+     * @param string $cacheKey
168
+     * @param mixed  $cacheData
169
+     * @param string $namespace
170
+     * @return void
171
+     */
172
+    public function appendCache(string $cacheKey, mixed $cacheData, string $namespace = '')
173
+    {
174
+        $cacheFullKey = $this->buildKey($cacheKey, $namespace);
175
+        $existingData = $this->getCache($cacheFullKey);
176
+
177
+        $mergedCacheData = CacheRedisHelper::arrayIdentifier($existingData, $cacheData);
178
+
179
+        $serializedData = CacheRedisHelper::serialize($mergedCacheData);
180
+
181
+        if ($this->redis->set($cacheFullKey, $serializedData)) {
182
+            $this->setMessage("Cache appended successfully", true);
183
+        } else {
184
+            $this->setMessage("Something went wrong. Please, try again.", false);
185
+        }
186 186
 
187 187
   
188
-      $this->logger->debug("{$this->getMessage()} from redis driver.");
189
-  }
188
+        $this->logger->debug("{$this->getMessage()} from redis driver.");
189
+    }
190 190
 
191 191
 
192
-  /**
193
-  * @param array  $items
194
-  * @param string $namespace
195
-  * @param int    $batchSize
196
-  * @return void
197
-  */
198
-  public function putMany(array $items, string $namespace = '', int $batchSize = 100)
199
-  {
200
-      $processedCount = 0;
201
-      $itemCount = count($items);
192
+    /**
193
+     * @param array  $items
194
+     * @param string $namespace
195
+     * @param int    $batchSize
196
+     * @return void
197
+     */
198
+    public function putMany(array $items, string $namespace = '', int $batchSize = 100)
199
+    {
200
+        $processedCount = 0;
201
+        $itemCount = count($items);
202 202
 
203
-      while($processedCount < $itemCount)
204
-      {
203
+        while($processedCount < $itemCount)
204
+        {
205 205
 
206 206
         $batchItems = array_slice($items, $processedCount, $batchSize);
207 207
         $this->processBatchItems($batchItems, $namespace);
208 208
         $processedCount += count($batchItems);
209
-      }
209
+        }
210 210
 
211
-  }
211
+    }
212 212
 
213
-  /**
214
-  * @return void
215
-  */
216
-  public function flushCache()
217
-  {
213
+    /**
214
+     * @return void
215
+     */
216
+    public function flushCache()
217
+    {
218 218
   
219 219
     if($this->redis->flushall()) {
220 220
         $this->setMessage("Cache flushed successfully", true);
@@ -223,7 +223,7 @@  discard block
 block discarded – undo
223 223
     }
224 224
 
225 225
     $this->logger->debug("{$this->getMessage()} from redis driver.");
226
-  }
226
+    }
227 227
 
228 228
     /**
229 229
      * @return string
@@ -241,17 +241,17 @@  discard block
 block discarded – undo
241 241
         return $this->success;
242 242
     }
243 243
 
244
-  /**
245
-  * @param string $key
246
-  * @param string $namespace
247
-  * @return string
248
-  */
249
-  private function buildKey(string $key, string $namespace)
250
-  {
244
+    /**
245
+     * @param string $key
246
+     * @param string $namespace
247
+     * @return string
248
+     */
249
+    private function buildKey(string $key, string $namespace)
250
+    {
251 251
     return $this->namespace . ($namespace ? $namespace . ':' : '') . $key;
252
-  }
252
+    }
253 253
 
254
-  /**
254
+    /**
255 255
      * @param string  $message
256 256
      * @param boolean $success
257 257
      * @return void
@@ -263,10 +263,10 @@  discard block
 block discarded – undo
263 263
     }
264 264
 
265 265
         /**
266
-     * @param array  $batchItems
267
-     * @param string $namespace
268
-     * @return void
269
-     */
266
+         * @param array  $batchItems
267
+         * @param string $namespace
268
+         * @return void
269
+         */
270 270
     private function processBatchItems(array $batchItems, string $namespace)
271 271
     {
272 272
         foreach($batchItems as $item) {
@@ -278,29 +278,29 @@  discard block
 block discarded – undo
278 278
         }
279 279
     }
280 280
 
281
-      /**
282
-  * @param string $fullKey
283
-  * @return string|null
284
-  */
285
-  private function getDump(string $fullKey)
286
-  {
287
-      return $this->redis->dump($fullKey);
288
-  }
289
-
290
-
291
-  /**
292
-  * @param string $fullKey
293
-  * @param string|int $ttl
294
-  * @param mixed $dump
295
-  * @return bool
296
-  */
297
-  private function restoreKey(string $fullKey, string|int $ttl, mixed $dump)
298
-  {
299
-      try {
300
-          $this->redis->restore($fullKey, $ttl * 1000, $dump, 'REPLACE');
301
-          return true;
302
-      } catch (Exception $e) {
303
-          throw CacheRedisException::create($e->getMessage());
304
-      }
305
-  }
281
+        /**
282
+         * @param string $fullKey
283
+         * @return string|null
284
+         */
285
+    private function getDump(string $fullKey)
286
+    {
287
+        return $this->redis->dump($fullKey);
288
+    }
289
+
290
+
291
+    /**
292
+     * @param string $fullKey
293
+     * @param string|int $ttl
294
+     * @param mixed $dump
295
+     * @return bool
296
+     */
297
+    private function restoreKey(string $fullKey, string|int $ttl, mixed $dump)
298
+    {
299
+        try {
300
+            $this->redis->restore($fullKey, $ttl * 1000, $dump, 'REPLACE');
301
+            return true;
302
+        } catch (Exception $e) {
303
+            throw CacheRedisException::create($e->getMessage());
304
+        }
305
+    }
306 306
 }
Please login to merge, or discard this patch.
src/Helpers/EnvHelper.php 1 patch
Indentation   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -34,8 +34,8 @@
 block discarded – undo
34 34
     }
35 35
 
36 36
     /**
37
-    * @return void
38
-    */
37
+     * @return void
38
+     */
39 39
     public static function copyEnv()
40 40
     {
41 41
         $rootDir = self::getRootPath();
Please login to merge, or discard this patch.