/** * Stores a setting value to the database. * @param string $key Specifies the setting key value, for example 'system:updates.check' * @param mixed $value The setting value to store, serializable. */ public static function set($key, $value = null) { if (is_array($key)) { foreach ($key as $_key => $_value) { static::set($_key, $_value); } return true; } $record = static::findRecord($key)->first(); if (!$record) { $record = new static(); list($namespace, $group, $item) = $record->parseKey($key); $record->namespace = $namespace; $record->group = $group; $record->item = $item; } $record->value = $value; $record->save(); static::$cache[$key] = $value; return true; }
/** * Returns a record (cached) * @return self */ public static function findRecord($key) { $record = new static(); list($namespace, $group, $item) = $record->parseKey($key); return $record->applyKey($key)->remember(5, implode('-', [$record->getTable(), $namespace, $group, $item]))->first(); }