# 内置依赖项
在不同的事件(或周期中),可用的依赖项可能会有所不同。例如,当你在一个命令方法中可以使用 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)