*/
public function load($uid, array $config)
{
+ if (!is_int($uid)) {
+ return;
+ }
+
$categories = array_keys($config);
foreach ($categories as $category) {
*/
public function get($uid, string $cat, string $key = null)
{
+ if (!is_int($uid)) {
+ return null;
+ }
+
if (isset($this->config[$uid][$cat][$key])) {
return $this->config[$uid][$cat][$key];
} elseif (!isset($key) && isset($this->config[$uid][$cat])) {
*/
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])) {
$this->config[$uid] = [];
}
*/
public function delete($uid, string $cat, string $key)
{
+ if (!is_int($uid)) {
+ return false;
+ }
+
if (isset($this->config[$uid][$cat][$key])) {
unset($this->config[$uid][$cat][$key]);
if (count($this->config[$uid][$cat]) == 0) {
$this->assertNull($configCache->get(1, 'cat2', 'key2'));
$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'));
+ }
}