Adding REAMDEs to directories

This commit is contained in:
Philipp Holzer 2019-03-03 15:05:35 +01:00 committed by Hypolite Petovan
parent 3261ffbd99
commit 8237e73e26
9 changed files with 48 additions and 7 deletions

View file

@ -0,0 +1,50 @@
<?php
namespace Friendica\Factory;
use Friendica\Core\Cache\ICacheDriver;
use Friendica\Core\Config;
use Friendica\Core\Cache;
/**
* Class CacheDriverFactory
*
* @package Friendica\Core\Cache
*
* A basic class to generate a CacheDriver
*/
class CacheDriverFactory
{
/**
* This method creates a CacheDriver for the given cache driver name
*
* @param string $driver The name of the cache driver
* @return ICacheDriver The instance of the CacheDriver
* @throws \Exception The exception if something went wrong during the CacheDriver creation
*/
public static function create($driver) {
switch ($driver) {
case 'memcache':
$memcache_host = Config::get('system', 'memcache_host');
$memcache_port = Config::get('system', 'memcache_port');
return new Cache\MemcacheCacheDriver($memcache_host, $memcache_port);
break;
case 'memcached':
$memcached_hosts = Config::get('system', 'memcached_hosts');
return new Cache\MemcachedCacheDriver($memcached_hosts);
break;
case 'redis':
$redis_host = Config::get('system', 'redis_host');
$redis_port = Config::get('system', 'redis_port');
return new Cache\RedisCacheDriver($redis_host, $redis_port);
break;
default:
return new Cache\DatabaseCacheDriver();
}
}
}

9
src/Factory/README.md Normal file
View file

@ -0,0 +1,9 @@
## Friendica\Factory
This namespace contains Factories.
A Factory is used to create specific objects based on its configuration.
See [Factory Method](https://designpatternsphp.readthedocs.io/en/latest/Creational/FactoryMethod/README.html)
Use the classes inside this directory if you want to change the way how new objects should get created.
Don't use the classes to change the behaviour of the concrete objects.