exchangeArray($keys ? Arr::only($from->getArrayCopy(), $keys) : $from->getArrayCopy()); } /** * Retrieve the value and override it by closure. */ public static function override(string $id, \Closure $closure) { $value = null; if (self::has($id)) { $value = self::get($id); } $value = $closure($value); self::set($id, $value); return $value; } /** * Retrieve the value and store it if not exists. * @param mixed $value */ public static function getOrSet(string $id, $value) { if (! self::has($id)) { return self::set($id, value($value)); } return self::get($id); } public static function getContainer() { if (Coroutine::inCoroutine()) { return Co::getContextFor(); } return static::$nonCoContext; } }