aboutsummaryrefslogtreecommitdiff
path: root/lib/CacheFactory.php
diff options
context:
space:
mode:
Diffstat (limited to 'lib/CacheFactory.php')
-rw-r--r--lib/CacheFactory.php95
1 files changed, 48 insertions, 47 deletions
diff --git a/lib/CacheFactory.php b/lib/CacheFactory.php
index 451f625f..ba1c3cb9 100644
--- a/lib/CacheFactory.php
+++ b/lib/CacheFactory.php
@@ -1,4 +1,5 @@
<?php
+
/**
* This file is part of RSS-Bridge, a PHP project capable of generating RSS and
* Atom feeds for websites that don't have one.
@@ -6,62 +7,62 @@
* For the full license information, please view the UNLICENSE file distributed
* with this source code.
*
- * @package Core
- * @license http://unlicense.org/ UNLICENSE
- * @link https://github.com/rss-bridge/rss-bridge
+ * @package Core
+ * @license http://unlicense.org/ UNLICENSE
+ * @link https://github.com/rss-bridge/rss-bridge
*/
class CacheFactory
{
- private $folder;
- private $cacheNames;
+ private $folder;
+ private $cacheNames;
- public function __construct(string $folder = PATH_LIB_CACHES)
- {
- $this->folder = $folder;
- // create cache names
- foreach(scandir($this->folder) as $file) {
- if(preg_match('/^([^.]+)Cache\.php$/U', $file, $m)) {
- $this->cacheNames[] = $m[1];
- }
- }
- }
+ public function __construct(string $folder = PATH_LIB_CACHES)
+ {
+ $this->folder = $folder;
+ // create cache names
+ foreach (scandir($this->folder) as $file) {
+ if (preg_match('/^([^.]+)Cache\.php$/U', $file, $m)) {
+ $this->cacheNames[] = $m[1];
+ }
+ }
+ }
- /**
- * @param string $name The name of the cache e.g. "File", "Memcached" or "SQLite"
- */
- public function create(string $name): CacheInterface
- {
- $name = $this->sanitizeCacheName($name) . 'Cache';
+ /**
+ * @param string $name The name of the cache e.g. "File", "Memcached" or "SQLite"
+ */
+ public function create(string $name): CacheInterface
+ {
+ $name = $this->sanitizeCacheName($name) . 'Cache';
- if(! preg_match('/^[A-Z][a-zA-Z0-9-]*$/', $name)) {
- throw new \InvalidArgumentException('Cache name invalid!');
- }
+ if (! preg_match('/^[A-Z][a-zA-Z0-9-]*$/', $name)) {
+ throw new \InvalidArgumentException('Cache name invalid!');
+ }
- $filePath = $this->folder . $name . '.php';
- if(!file_exists($filePath)) {
- throw new \Exception('Invalid cache');
- }
- $className = '\\' . $name;
- return new $className();
- }
+ $filePath = $this->folder . $name . '.php';
+ if (!file_exists($filePath)) {
+ throw new \Exception('Invalid cache');
+ }
+ $className = '\\' . $name;
+ return new $className();
+ }
- protected function sanitizeCacheName(string $name)
- {
- // Trim trailing '.php' if exists
- if (preg_match('/(.+)(?:\.php)/', $name, $matches)) {
- $name = $matches[1];
- }
+ protected function sanitizeCacheName(string $name)
+ {
+ // Trim trailing '.php' if exists
+ if (preg_match('/(.+)(?:\.php)/', $name, $matches)) {
+ $name = $matches[1];
+ }
- // Trim trailing 'Cache' if exists
- if (preg_match('/(.+)(?:Cache)$/i', $name, $matches)) {
- $name = $matches[1];
- }
+ // Trim trailing 'Cache' if exists
+ if (preg_match('/(.+)(?:Cache)$/i', $name, $matches)) {
+ $name = $matches[1];
+ }
- if(in_array(strtolower($name), array_map('strtolower', $this->cacheNames))) {
- $index = array_search(strtolower($name), array_map('strtolower', $this->cacheNames));
- return $this->cacheNames[$index];
- }
- return null;
- }
+ if (in_array(strtolower($name), array_map('strtolower', $this->cacheNames))) {
+ $index = array_search(strtolower($name), array_map('strtolower', $this->cacheNames));
+ return $this->cacheNames[$index];
+ }
+ return null;
+ }
}