get('ctx'); } /** * 构建消息段的助手函数 * * @param string $type 类型 * @param array $data 字段 */ function segment(string $type, array $data = []): MessageSegment { return new MessageSegment($type, $data); } /** * 中间件操作类的助手函数 */ function middleware(): MiddlewareHandler { return MiddlewareHandler::getInstance(); } // ////////////////// 容器部分 ////////////////////// /** * 获取容器(请求级)实例 */ function container(): ContainerInterface { return Container::getInstance(); } /** * 解析类实例(使用容器) * * @template T * @param class-string $abstract * @return Closure|mixed|T * @noinspection PhpDocMissingThrowsInspection */ function resolve(string $abstract, array $parameters = []) { /* @noinspection PhpUnhandledExceptionInspection */ return Container::getInstance()->make($abstract, $parameters); } /** * 获取容器实例 * * @template T * @param null|class-string $abstract * @return Closure|ContainerInterface|mixed|T */ function app(string $abstract = null, array $parameters = []) { if (is_null($abstract)) { return container(); } return resolve($abstract, $parameters); }