Made the cache factory strict
* Return types * Typehints * made strict * fix tests Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
This commit is contained in:
parent
2b70c708ab
commit
c5fcfb0709
3 changed files with 33 additions and 28 deletions
|
@ -31,8 +31,10 @@
|
|||
|
||||
namespace OC\Memcache;
|
||||
|
||||
use \OCP\ICacheFactory;
|
||||
use \OCP\ILogger;
|
||||
use OCP\ICache;
|
||||
use OCP\ICacheFactory;
|
||||
use OCP\ILogger;
|
||||
use OCP\IMemcache;
|
||||
|
||||
class Factory implements ICacheFactory {
|
||||
const NULL_CACHE = '\\OC\\Memcache\\NullCache';
|
||||
|
@ -69,7 +71,7 @@ class Factory implements ICacheFactory {
|
|||
* @param string|null $distributedCacheClass
|
||||
* @param string|null $lockingCacheClass
|
||||
*/
|
||||
public function __construct($globalPrefix, ILogger $logger,
|
||||
public function __construct(string $globalPrefix, ILogger $logger,
|
||||
$localCacheClass = null, $distributedCacheClass = null, $lockingCacheClass = null)
|
||||
{
|
||||
$this->logger = $logger;
|
||||
|
@ -128,9 +130,9 @@ class Factory implements ICacheFactory {
|
|||
* create a cache instance for storing locks
|
||||
*
|
||||
* @param string $prefix
|
||||
* @return \OCP\IMemcache
|
||||
* @return IMemcache
|
||||
*/
|
||||
public function createLocking($prefix = '') {
|
||||
public function createLocking(string $prefix = ''): IMemcache {
|
||||
return new $this->lockingCacheClass($this->globalPrefix . '/' . $prefix);
|
||||
}
|
||||
|
||||
|
@ -138,9 +140,9 @@ class Factory implements ICacheFactory {
|
|||
* create a distributed cache instance
|
||||
*
|
||||
* @param string $prefix
|
||||
* @return \OC\Memcache\Cache
|
||||
* @return ICache
|
||||
*/
|
||||
public function createDistributed($prefix = '') {
|
||||
public function createDistributed(string $prefix = ''): ICache {
|
||||
return new $this->distributedCacheClass($this->globalPrefix . '/' . $prefix);
|
||||
}
|
||||
|
||||
|
@ -148,18 +150,19 @@ class Factory implements ICacheFactory {
|
|||
* create a local cache instance
|
||||
*
|
||||
* @param string $prefix
|
||||
* @return \OC\Memcache\Cache
|
||||
* @return ICache
|
||||
*/
|
||||
public function createLocal($prefix = '') {
|
||||
public function createLocal(string $prefix = ''): ICache {
|
||||
return new $this->localCacheClass($this->globalPrefix . '/' . $prefix);
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \OC\Memcache\Factory::createDistributed()
|
||||
* @param string $prefix
|
||||
* @return \OC\Memcache\Cache
|
||||
* @return ICache
|
||||
* @deprecated 13.0.0 Use either createLocking, createDistributed or createLocal
|
||||
*/
|
||||
public function create($prefix = '') {
|
||||
public function create(string $prefix = ''): ICache {
|
||||
return $this->createDistributed($prefix);
|
||||
}
|
||||
|
||||
|
@ -168,16 +171,16 @@ class Factory implements ICacheFactory {
|
|||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function isAvailable() {
|
||||
public function isAvailable(): bool {
|
||||
return ($this->distributedCacheClass !== self::NULL_CACHE);
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \OC\Memcache\Factory::createLocal()
|
||||
* @param string $prefix
|
||||
* @return Cache
|
||||
* @return ICache
|
||||
*/
|
||||
public function createLowLatency($prefix = '') {
|
||||
public function createLowLatency(string $prefix = ''): ICache {
|
||||
return $this->createLocal($prefix);
|
||||
}
|
||||
|
||||
|
@ -186,7 +189,7 @@ class Factory implements ICacheFactory {
|
|||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function isAvailableLowLatency() {
|
||||
public function isAvailableLowLatency(): bool {
|
||||
return ($this->localCacheClass !== self::NULL_CACHE);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
<?php
|
||||
declare(strict_types=1);
|
||||
/**
|
||||
* @copyright Copyright (c) 2016, ownCloud, Inc.
|
||||
*
|
||||
|
@ -36,11 +37,11 @@ interface ICacheFactory{
|
|||
* All entries added trough the cache instance will be namespaced by $prefix to prevent collisions between apps
|
||||
*
|
||||
* @param string $prefix
|
||||
* @return \OCP\ICache
|
||||
* @return ICache
|
||||
* @since 7.0.0
|
||||
* @deprecated 13.0.0 Use either createLocking, createDistributed or createLocal
|
||||
*/
|
||||
public function create($prefix = '');
|
||||
public function create(string $prefix = ''): ICache;
|
||||
|
||||
/**
|
||||
* Check if any memory cache backend is available
|
||||
|
@ -48,32 +49,32 @@ interface ICacheFactory{
|
|||
* @return bool
|
||||
* @since 7.0.0
|
||||
*/
|
||||
public function isAvailable();
|
||||
public function isAvailable(): bool;
|
||||
|
||||
/**
|
||||
* create a cache instance for storing locks
|
||||
*
|
||||
* @param string $prefix
|
||||
* @return \OCP\IMemcache
|
||||
* @return IMemcache
|
||||
* @since 13.0.0
|
||||
*/
|
||||
public function createLocking($prefix = '');
|
||||
public function createLocking(string $prefix = ''): IMemcache;
|
||||
|
||||
/**
|
||||
* create a distributed cache instance
|
||||
*
|
||||
* @param string $prefix
|
||||
* @return \OCP\ICache
|
||||
* @return ICache
|
||||
* @since 13.0.0
|
||||
*/
|
||||
public function createDistributed($prefix = '');
|
||||
public function createDistributed(string $prefix = ''): ICache;
|
||||
|
||||
/**
|
||||
* create a local cache instance
|
||||
*
|
||||
* @param string $prefix
|
||||
* @return \OCP\ICache
|
||||
* @return ICache
|
||||
* @since 13.0.0
|
||||
*/
|
||||
public function createLocal($prefix = '');
|
||||
public function createLocal(string $prefix = ''): ICache;
|
||||
}
|
||||
|
|
|
@ -20,9 +20,10 @@
|
|||
*/
|
||||
namespace Test\Memcache;
|
||||
|
||||
use OC\Memcache\NullCache;
|
||||
use OCP\ILogger;
|
||||
|
||||
class Test_Factory_Available_Cache1 {
|
||||
class Test_Factory_Available_Cache1 extends NullCache {
|
||||
public function __construct($prefix = '') {
|
||||
}
|
||||
|
||||
|
@ -31,7 +32,7 @@ class Test_Factory_Available_Cache1 {
|
|||
}
|
||||
}
|
||||
|
||||
class Test_Factory_Available_Cache2 {
|
||||
class Test_Factory_Available_Cache2 extends NullCache {
|
||||
public function __construct($prefix = '') {
|
||||
}
|
||||
|
||||
|
@ -40,7 +41,7 @@ class Test_Factory_Available_Cache2 {
|
|||
}
|
||||
}
|
||||
|
||||
class Test_Factory_Unavailable_Cache1 {
|
||||
class Test_Factory_Unavailable_Cache1 extends NullCache {
|
||||
public function __construct($prefix = '') {
|
||||
}
|
||||
|
||||
|
@ -49,7 +50,7 @@ class Test_Factory_Unavailable_Cache1 {
|
|||
}
|
||||
}
|
||||
|
||||
class Test_Factory_Unavailable_Cache2 {
|
||||
class Test_Factory_Unavailable_Cache2 extends NullCache {
|
||||
public function __construct($prefix = '') {
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue