同步操作将从 宇润/YurunHttp 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
<?phpnamespace Yurun\Util;use Swoole\Coroutine;use Yurun\Util\YurunHttp\Handler\IHandler;abstract class YurunHttp{/*** 默认处理器类.** @var string|null*/private static $defaultHandler = null;/*** 属性.** @var array*/private static $attributes = [];/*** 版本号.*/const VERSION = '4.3';/*** 设置默认处理器类.** @param string|null $class** @return void*/public static function setDefaultHandler($class){static::$defaultHandler = $class;}/*** 获取默认处理器类.** @return string|null*/public static function getDefaultHandler(){return static::$defaultHandler;}/*** 获取处理器类.** @return \Yurun\Util\YurunHttp\Handler\IHandler*/public static function getHandler(){if (static::$defaultHandler){$class = static::$defaultHandler;}elseif (\defined('SWOOLE_VERSION') && Coroutine::getuid() > -1){$class = \Yurun\Util\YurunHttp\Handler\Swoole::class;}else{$class = \Yurun\Util\YurunHttp\Handler\Curl::class;}return new $class();}/*** 发送请求并获取结果.** @param \Yurun\Util\YurunHttp\Http\Request $request* @param \Yurun\Util\YurunHttp\Handler\IHandler|string|null $handlerClass** @return \Yurun\Util\YurunHttp\Http\Response|null*/public static function send($request, $handlerClass = null){if ($handlerClass instanceof IHandler){$handler = $handlerClass;$needClose = false;}else{$needClose = true;if (null === $handlerClass){$handler = static::getHandler();}else{$handler = new $handlerClass();}}/** @var IHandler $handler */$time = microtime(true);foreach (static::$attributes as $name => $value){if (null === $request->getAttribute($name)){$request = $request->withAttribute($name, $value);}}$handler->send($request);$response = $handler->recv();if (!$response){return $response;}$response = $response->withTotalTime(microtime(true) - $time);if ($needClose){$handler->close();}return $response;}/*** 发起 WebSocket 连接.** @param \Yurun\Util\YurunHttp\Http\Request $request* @param \Yurun\Util\YurunHttp\Handler\IHandler|string $handlerClass** @return \Yurun\Util\YurunHttp\WebSocket\IWebSocketClient*/public static function websocket($request, $handlerClass = null){if ($handlerClass instanceof IHandler){$handler = $handlerClass;}elseif (null === $handlerClass){$handler = static::getHandler();}else{$handler = new $handlerClass();}foreach (static::$attributes as $name => $value){if (null === $request->getAttribute($name)){$request = $request->withAttribute($name, $value);}}return $handler->websocket($request);}/*** 获取所有全局属性.** @return array*/public static function getAttributes(){return static::$attributes;}/*** 获取全局属性值** @param string $name* @param mixed $default** @return mixed*/public static function getAttribute($name, $default = null){if (\array_key_exists($name, static::$attributes)){return static::$attributes[$name];}else{return $default;}}/*** 设置全局属性值** @param string $name* @param mixed $value** @return mixed*/public static function setAttribute($name, $value){static::$attributes[$name] = $value;}}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。