52 public function get($namespace, $key, $defaultValue =
null)
58 return $this->entries[$namespace][$key] ?? $defaultValue;
74 public function set($namespace, $key, $value)
80 $serializedValue = serialize($value);
81 $connection = GeneralUtility::makeInstance(ConnectionPool::class)
82 ->getConnectionForTable(
'sys_registry');
83 $rowCount = $connection->count(
86 [
'entry_namespace' => $namespace,
'entry_key' => $key]
88 if ((
int)$rowCount < 1) {
91 [
'entry_namespace' => $namespace,
'entry_key' => $key,
'entry_value' => $serializedValue],
97 [
'entry_value' => $serializedValue],
98 [
'entry_namespace' => $namespace,
'entry_key' => $key],
102 $this->entries[$namespace][$key] = $value;
112 public function remove($namespace, $key)
115 GeneralUtility::makeInstance(ConnectionPool::class)
116 ->getConnectionForTable(
'sys_registry')
119 [
'entry_namespace' => $namespace,
'entry_key' => $key]
121 unset($this->entries[$namespace][$key]);
133 GeneralUtility::makeInstance(ConnectionPool::class)
134 ->getConnectionForTable(
'sys_registry')
137 [
'entry_namespace' => $namespace]
139 unset($this->entries[$namespace]);
150 return isset($this->loadedNamespaces[$namespace]);
162 $this->entries[$namespace] = [];
163 $result = GeneralUtility::makeInstance(ConnectionPool::class)
164 ->getConnectionForTable(
'sys_registry')
166 [
'entry_key',
'entry_value'],
168 [
'entry_namespace' => $namespace]
170 while ($row = $result->fetch()) {
171 $this->entries[$namespace][$row[
'entry_key']] = unserialize($row[
'entry_value']);
173 $this->loadedNamespaces[$namespace] =
true;
185 if (strlen($namespace) < 2) {
186 throw new \InvalidArgumentException(
'Given namespace must be longer than two characters.', 1249755131);