| @@ 18-76 (lines=59) @@ | ||
| 15 | * @since 2016/07/11 |
|
| 16 | * @version 0.7 |
|
| 17 | */ |
|
| 18 | trait CacheProvider |
|
| 19 | { |
|
| 20 | public function cacheProvider() |
|
| 21 | { |
|
| 22 | return [ |
|
| 23 | [$this->getApcuObject()], |
|
| 24 | [$this->getMemcachedObject()], |
|
| 25 | [$this->getRedisObject()], |
|
| 26 | [$this->getTemporaryFileObject()] |
|
| 27 | ]; |
|
| 28 | } |
|
| 29 | ||
| 30 | private function getApcuObject() |
|
| 31 | { |
|
| 32 | $factory = new CacheDriverFactory(); |
|
| 33 | $driver = $factory->create("WebStream\Cache\Driver\Apcu"); |
|
| 34 | $logger = new class() { function __call($name, $args) {} }; |
|
| 35 | $driver->inject('logger', $logger); |
|
| 36 | ||
| 37 | return $driver; |
|
| 38 | } |
|
| 39 | ||
| 40 | private function getMemcachedObject() |
|
| 41 | { |
|
| 42 | $factory = new CacheDriverFactory(); |
|
| 43 | $container = new Container(false); |
|
| 44 | $container->servers = [["memcached", 11211]]; |
|
| 45 | $driver = $factory->create("WebStream\Cache\Driver\Memcached", $container); |
|
| 46 | $logger = new class() { function __call($name, $args) {} }; |
|
| 47 | $driver->inject('logger', $logger); |
|
| 48 | ||
| 49 | return $driver; |
|
| 50 | } |
|
| 51 | ||
| 52 | private function getRedisObject() |
|
| 53 | { |
|
| 54 | $factory = new CacheDriverFactory(); |
|
| 55 | $container = new Container(false); |
|
| 56 | $container->host = "redis"; |
|
| 57 | $container->port = 6379; |
|
| 58 | $driver = $factory->create("WebStream\Cache\Driver\Redis", $container); |
|
| 59 | $logger = new class() { function __call($name, $args) {} }; |
|
| 60 | $driver->inject('logger', $logger); |
|
| 61 | ||
| 62 | return $driver; |
|
| 63 | } |
|
| 64 | ||
| 65 | private function getTemporaryFileObject() |
|
| 66 | { |
|
| 67 | $factory = new CacheDriverFactory(); |
|
| 68 | $container = new Container(false); |
|
| 69 | $container->cacheDir = "/tmp"; |
|
| 70 | $driver = $factory->create("WebStream\Cache\Driver\TemporaryFile", $container); |
|
| 71 | $logger = new class() { function __call($name, $args) {} }; |
|
| 72 | $driver->inject('logger', $logger); |
|
| 73 | ||
| 74 | return $driver; |
|
| 75 | } |
|
| 76 | } |
|
| 77 | ||
| @@ 18-76 (lines=59) @@ | ||
| 15 | * @since 2016/07/11 |
|
| 16 | * @version 0.7 |
|
| 17 | */ |
|
| 18 | trait CacheProvider |
|
| 19 | { |
|
| 20 | public function cacheProvider() |
|
| 21 | { |
|
| 22 | return [ |
|
| 23 | [$this->getApcuObject()], |
|
| 24 | [$this->getMemcachedObject()], |
|
| 25 | [$this->getRedisObject()], |
|
| 26 | [$this->getTemporaryFileObject()] |
|
| 27 | ]; |
|
| 28 | } |
|
| 29 | ||
| 30 | private function getApcuObject() |
|
| 31 | { |
|
| 32 | $factory = new CacheDriverFactory(); |
|
| 33 | $driver = $factory->create("WebStream\Cache\Driver\Apcu"); |
|
| 34 | $logger = new class() { function __call($name, $args) {} }; |
|
| 35 | $driver->inject('logger', $logger); |
|
| 36 | ||
| 37 | return $driver; |
|
| 38 | } |
|
| 39 | ||
| 40 | private function getMemcachedObject() |
|
| 41 | { |
|
| 42 | $factory = new CacheDriverFactory(); |
|
| 43 | $container = new Container(false); |
|
| 44 | $container->servers = [["memcached", 11211]]; |
|
| 45 | $driver = $factory->create("WebStream\Cache\Driver\Memcached", $container); |
|
| 46 | $logger = new class() { function __call($name, $args) {} }; |
|
| 47 | $driver->inject('logger', $logger); |
|
| 48 | ||
| 49 | return $driver; |
|
| 50 | } |
|
| 51 | ||
| 52 | private function getRedisObject() |
|
| 53 | { |
|
| 54 | $factory = new CacheDriverFactory(); |
|
| 55 | $container = new Container(false); |
|
| 56 | $container->host = "redis"; |
|
| 57 | $container->port = 6379; |
|
| 58 | $driver = $factory->create("WebStream\Cache\Driver\Redis", $container); |
|
| 59 | $logger = new class() { function __call($name, $args) {} }; |
|
| 60 | $driver->inject('logger', $logger); |
|
| 61 | ||
| 62 | return $driver; |
|
| 63 | } |
|
| 64 | ||
| 65 | private function getTemporaryFileObject() |
|
| 66 | { |
|
| 67 | $factory = new CacheDriverFactory(); |
|
| 68 | $container = new Container(false); |
|
| 69 | $container->cacheDir = "/tmp"; |
|
| 70 | $driver = $factory->create("WebStream\Cache\Driver\TemporaryFile", $container); |
|
| 71 | $logger = new class() { function __call($name, $args) {} }; |
|
| 72 | $driver->inject('logger', $logger); |
|
| 73 | ||
| 74 | return $driver; |
|
| 75 | } |
|
| 76 | } |
|
| 77 | ||