Allow nullable UID in PConfigCache
This commit is contained in:
parent
d5de5b6789
commit
f70271aa5d
|
@ -36,6 +36,10 @@ class PConfigCache
|
||||||
*/
|
*/
|
||||||
public function load($uid, array $config)
|
public function load($uid, array $config)
|
||||||
{
|
{
|
||||||
|
if (!is_int($uid)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
$categories = array_keys($config);
|
$categories = array_keys($config);
|
||||||
|
|
||||||
foreach ($categories as $category) {
|
foreach ($categories as $category) {
|
||||||
|
@ -64,6 +68,10 @@ class PConfigCache
|
||||||
*/
|
*/
|
||||||
public function get($uid, string $cat, string $key = null)
|
public function get($uid, string $cat, string $key = null)
|
||||||
{
|
{
|
||||||
|
if (!is_int($uid)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
if (isset($this->config[$uid][$cat][$key])) {
|
if (isset($this->config[$uid][$cat][$key])) {
|
||||||
return $this->config[$uid][$cat][$key];
|
return $this->config[$uid][$cat][$key];
|
||||||
} elseif (!isset($key) && isset($this->config[$uid][$cat])) {
|
} elseif (!isset($key) && isset($this->config[$uid][$cat])) {
|
||||||
|
@ -87,6 +95,10 @@ class PConfigCache
|
||||||
*/
|
*/
|
||||||
public function set($uid, string $cat, string $key, $value)
|
public function set($uid, string $cat, string $key, $value)
|
||||||
{
|
{
|
||||||
|
if (!is_int($uid)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
if (!isset($this->config[$uid]) || !is_array($this->config[$uid])) {
|
if (!isset($this->config[$uid]) || !is_array($this->config[$uid])) {
|
||||||
$this->config[$uid] = [];
|
$this->config[$uid] = [];
|
||||||
}
|
}
|
||||||
|
@ -118,6 +130,10 @@ class PConfigCache
|
||||||
*/
|
*/
|
||||||
public function delete($uid, string $cat, string $key)
|
public function delete($uid, string $cat, string $key)
|
||||||
{
|
{
|
||||||
|
if (!is_int($uid)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
if (isset($this->config[$uid][$cat][$key])) {
|
if (isset($this->config[$uid][$cat][$key])) {
|
||||||
unset($this->config[$uid][$cat][$key]);
|
unset($this->config[$uid][$cat][$key]);
|
||||||
if (count($this->config[$uid][$cat]) == 0) {
|
if (count($this->config[$uid][$cat]) == 0) {
|
||||||
|
|
|
@ -255,4 +255,21 @@ class PConfigCacheTest extends MockedTest
|
||||||
$this->assertNull($configCache->get(1, 'cat2', 'key2'));
|
$this->assertNull($configCache->get(1, 'cat2', 'key2'));
|
||||||
$this->assertNull($configCache->get(2, 'cat1', 'key1'));
|
$this->assertNull($configCache->get(2, 'cat1', 'key1'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test when using an invalid UID
|
||||||
|
* @todo check it the clean way before using the config class
|
||||||
|
*/
|
||||||
|
public function testInvalidUid()
|
||||||
|
{
|
||||||
|
// bad UID!
|
||||||
|
$uid = null;
|
||||||
|
|
||||||
|
$configCache = new PConfigCache();
|
||||||
|
|
||||||
|
$this->assertNull($configCache->get($uid, 'cat1', 'cat2'));
|
||||||
|
|
||||||
|
$this->assertFalse($configCache->set($uid, 'cat1', 'key1', 'doesn\'t matter!'));
|
||||||
|
$this->assertFalse($configCache->delete($uid, 'cat1', 'key1'));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue