mirror of
https://github.com/zhamao-robot/zhamao-framework.git
synced 2026-03-18 13:14:52 +08:00
58 lines
2.8 KiB
Markdown
58 lines
2.8 KiB
Markdown
# 内置依赖项
|
||
|
||
在不同的事件(或周期中),可用的依赖项可能会有所不同。例如,当你在一个命令方法中可以使用 `BotContext` 依赖,但在一个路由方法中却不能使用。
|
||
|
||
你也可以选择直接查看 `src/ZM/Container/ContainerRegistrant.php` 文件,大部分依赖都在该处定义。
|
||
GitHub 链接:https://github.com/zhamao-robot/zhamao-framework/blob/main/src/ZM/Container/ContainerRegistrant.php
|
||
|
||
本页面列出在不同事件中可用的依赖项。
|
||
|
||
## 全局依赖
|
||
|
||
在任何事件(或任何支持依赖注入的地方)中,你都可以使用以下依赖项:
|
||
|
||
- `Psr\Log\LoggerInterface`:日志记录器(可使用类的别名 `LoggerInterface`)
|
||
- `Psr\Container\ContainerInterface`:容器(可使用别名 `ContainerInterface`)
|
||
- `DI\Container`:容器,区别在于可以使用 `set` 方法来动态设置依赖项,与 `container` 函数返回的实例相同
|
||
- `ZM\Config\ZMConfig`:配置,与 `config` 函数返回的实例相同(可使用别名 `ZMConfig`)
|
||
- ...
|
||
|
||
## OneBot 事件
|
||
|
||
在 OneBot 事件(`@BotEvent`)中,你可以使用以下依赖项:
|
||
|
||
- `OneBot\V12\Object\OneBotEvent`:当前事件的实例(可使用别名 `OneBotEvent`)
|
||
- `ZM\Context\BotContext`:当前事件的上下文,可使用别名 `BotContext`,部分事件可能不可用(要求传入的事件存在 `platform` 字段)
|
||
|
||
## OneBot 动作响应
|
||
|
||
在 OneBot 动作响应(`@BotActionResponse`)中,你可以使用以下依赖项:
|
||
|
||
- `OneBot\V12\Object\ActionResponse`:当前动作响应的实例(可使用别名 `ActionResponse`)
|
||
|
||
## HTTP 请求事件(路由事件)
|
||
|
||
在 HTTP 请求事件(`@Route`)中,你可以使用以下依赖项:
|
||
|
||
- `OneBot\Driver\Event\Http\HttpRequestEvent`:当前事件的实例(可使用别名 `HttpRequestEvent`)
|
||
- `Psr\Http\Message\ServerRequestInterface`:当前请求的实例(可使用别名 `ServerRequestInterface`)
|
||
|
||
## WebSocket 连接事件
|
||
|
||
在 WebSocket 连接事件(`@BindEvent(WebSocketOpenEvent::class)`)中,你可以使用以下依赖项:
|
||
|
||
- `OneBot\Driver\Event\WebSocket\WebSocketOpenEvent`:当前事件的实例(可使用别名 `WebSocketOpenEvent`)
|
||
|
||
## WebSocket 消息事件
|
||
|
||
在 WebSocket 消息事件(`@BindEvent(WebSocketMessageEvent::class)`)中,你可以使用以下依赖项:
|
||
|
||
- `OneBot\Driver\Event\WebSocket\WebSocketMessageEvent`:当前事件的实例(可使用别名 `WebSocketMessageEvent`)
|
||
- `Choir\WebSocket\FrameInterface`:当前消息(帧)的实例(可使用别名 `FrameInterface`)
|
||
|
||
## WebSocket 关闭事件
|
||
|
||
在 WebSocket 关闭事件(`@BindEvent(WebSocketCloseEvent::class)`)中,你可以使用以下依赖项:
|
||
|
||
- `OneBot\Driver\Event\WebSocket\WebSocketCloseEvent`:当前事件的实例(可使用别名 `WebSocketCloseEvent`)
|