diff --git a/flextype/cache/AcpuAdapter.php b/flextype/cache/AcpuAdapter.php new file mode 100644 index 00000000..aa973566 --- /dev/null +++ b/flextype/cache/AcpuAdapter.php @@ -0,0 +1,19 @@ +flextype = $flextype; + } + + public function getDriver(): object + { + return new AcpuCache(); + } +} diff --git a/flextype/cache/ArrayAdapter.php b/flextype/cache/ArrayAdapter.php new file mode 100644 index 00000000..0be62653 --- /dev/null +++ b/flextype/cache/ArrayAdapter.php @@ -0,0 +1,19 @@ +flextype = $flextype; + } + + public function getDriver(): object + { + return new ArrayCache(); + } +} diff --git a/flextype/cache/CacheAdapterInterface.php b/flextype/cache/CacheAdapterInterface.php new file mode 100644 index 00000000..e634d79a --- /dev/null +++ b/flextype/cache/CacheAdapterInterface.php @@ -0,0 +1,23 @@ +flextype = $flextype; + } + + public function getDriver(): object + { + $cache_directory = PATH['cache'] . '/doctrine/'; + + if (! Filesystem::has($cache_directory)) { + Filesystem::createDir($cache_directory); + } + + return new FilesystemCache($cache_directory); + } +} diff --git a/flextype/cache/MemcachedAdapter.php b/flextype/cache/MemcachedAdapter.php new file mode 100644 index 00000000..2fc7bf4e --- /dev/null +++ b/flextype/cache/MemcachedAdapter.php @@ -0,0 +1,29 @@ +flextype = $flextype; + } + + public function getDriver(): object + { + $memcached = new Memecached(); + $memcached->addServer( + $this->flextype['registry']->get('settings.cache.memcached.server', 'localhost'), + $this->flextype['registry']->get('settings.cache.memcache.port', 11211) + ); + + $driver = new MemcachedCache(); + $driver->setMemcached($memcached); + + return $driver; + } +} diff --git a/flextype/cache/RedisAdapter.php b/flextype/cache/RedisAdapter.php new file mode 100644 index 00000000..e1fe2bec --- /dev/null +++ b/flextype/cache/RedisAdapter.php @@ -0,0 +1,42 @@ +flextype = $flextype; + } + + public function getDriver(): object + { + $redis = new Redis(); + $socket = $this->flextype['registry']->get('settings.cache.redis.socket', false); + $password = $this->flextype['registry']->get('settings.cache.redis.password', false); + + if ($socket) { + $redis->connect($socket); + } else { + $redis->connect( + $this->flextype['registry']->get('settings.cache.redis.server', 'localhost'), + $this->flextype['registry']->get('settings.cache.redis.port', 6379) + ); + } + + // Authenticate with password if set + if ($password && ! $redis->auth($password)) { + throw new RedisException('Redis authentication failed'); + } + + $driver = new RedisCache(); + $driver->setRedis($redis); + + return $driver; + } +} diff --git a/flextype/cache/SQLite3Adapter.php b/flextype/cache/SQLite3Adapter.php new file mode 100644 index 00000000..8e6f220f --- /dev/null +++ b/flextype/cache/SQLite3Adapter.php @@ -0,0 +1,29 @@ +flextype = $flextype; + } + + public function getDriver(): object + { + $cache_directory = PATH['cache'] . '/doctrine/'; + + if (! Filesystem::has($cache_directory)) { + Filesystem::createDir($cache_directory); + } + + $db = new SQLite3($cache_directory . $this->flextype['registry']->get('settings.cache.sqlite3.database', 'flextype') . '.db'); + + return new SQLite3Cache($db, $this->flextype['registry']->get('settings.cache.sqlite3.table', 'flextype')); + } +} diff --git a/flextype/cache/WinCacheAdapter.php b/flextype/cache/WinCacheAdapter.php new file mode 100644 index 00000000..49052e7c --- /dev/null +++ b/flextype/cache/WinCacheAdapter.php @@ -0,0 +1,19 @@ +flextype = $flextype; + } + + public function getDriver(): object + { + return new WinCacheCache(); + } +} diff --git a/flextype/cache/ZendDataCacheAdapter.php b/flextype/cache/ZendDataCacheAdapter.php new file mode 100644 index 00000000..503ca399 --- /dev/null +++ b/flextype/cache/ZendDataCacheAdapter.php @@ -0,0 +1,19 @@ +flextype = $flextype; + } + + public function getDriver(): object + { + return new ZendDataCache(); + } +}