| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 | 
							- <?php
 
- declare(strict_types=1);
 
- /**
 
-  * This file is part of Hyperf.
 
-  *
 
-  * @link     https://www.hyperf.io
 
-  * @document https://hyperf.wiki
 
-  * @contact  group@hyperf.io
 
-  * @license  https://github.com/hyperf/hyperf/blob/master/LICENSE
 
-  */
 
- namespace Hyperf\Utils;
 
- use Hyperf\Engine\Coroutine as Co;
 
- /**
 
-  * @deprecated v3.0 please use `hyperf/context` instead.
 
-  */
 
- class Context
 
- {
 
-     protected static $nonCoContext = [];
 
-     public static function set(string $id, $value)
 
-     {
 
-         if (Coroutine::inCoroutine()) {
 
-             Co::getContextFor()[$id] = $value;
 
-         } else {
 
-             static::$nonCoContext[$id] = $value;
 
-         }
 
-         return $value;
 
-     }
 
-     public static function get(string $id, $default = null, $coroutineId = null)
 
-     {
 
-         if (Coroutine::inCoroutine()) {
 
-             return Co::getContextFor($coroutineId)[$id] ?? $default;
 
-         }
 
-         return static::$nonCoContext[$id] ?? $default;
 
-     }
 
-     public static function has(string $id, $coroutineId = null)
 
-     {
 
-         if (Coroutine::inCoroutine()) {
 
-             return isset(Co::getContextFor($coroutineId)[$id]);
 
-         }
 
-         return isset(static::$nonCoContext[$id]);
 
-     }
 
-     /**
 
-      * Release the context when you are not in coroutine environment.
 
-      */
 
-     public static function destroy(string $id)
 
-     {
 
-         unset(static::$nonCoContext[$id]);
 
-     }
 
-     /**
 
-      * Copy the context from a coroutine to current coroutine.
 
-      */
 
-     public static function copy(int $fromCoroutineId, array $keys = []): void
 
-     {
 
-         $from = Co::getContextFor($fromCoroutineId);
 
-         if ($from === null) {
 
-             return;
 
-         }
 
-         $current = Co::getContextFor();
 
-         $current->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;
 
-     }
 
- }
 
 
  |