add di support for event handlers

This commit is contained in:
sunxyw
2022-04-10 21:46:53 +08:00
parent 420b8e6d67
commit 0dd61a7270
3 changed files with 16 additions and 33 deletions

View File

@@ -18,6 +18,7 @@ use ZM\API\TuringAPI;
use ZM\Config\ZMConfig;
use ZM\ConnectionManager\ConnectionObject;
use ZM\Console\Console;
use ZM\Context\Context;
use ZM\Event\EventDispatcher;
use ZM\Exception\InterruptException;
use ZM\Module\QQBot;
@@ -69,7 +70,6 @@ class Hello
*/
public function hello()
{
zm_dump(resolve('swoole_server')->worker_id);
return '你好啊,我是由炸毛框架构建的机器人!';
}
@@ -141,7 +141,6 @@ class Hello
*/
public function randNum()
{
zm_dump(resolve('swoole_server')->worker_id);
// 获取第一个数字类型的参数
$num1 = ctx()->getNumArg('请输入第一个数字');
// 获取第二个数字类型的参数
@@ -192,13 +191,7 @@ class Hello
*/
public function onConnect(ConnectionObject $conn)
{
zm_dump(resolve('path.base'));
zm_dump(resolve('path.config'));
zm_dump(resolve('app')::$server->worker_id);
Console::info('机器人 ' . $conn->getOption('connect_id') . ' 已连接!');
container()->bind('cid', function () use ($conn) {
return resolve('app')::$server->worker_id . $conn->getOption('connect_id');
});
}
/**
@@ -207,7 +200,6 @@ class Hello
*/
public function onDisconnect(ConnectionObject $conn)
{
zm_dump(resolve('cid'));
Console::info('机器人 ' . $conn->getOption('connect_id') . ' 已断开连接!');
}
@@ -255,29 +247,14 @@ class Hello
}
/*
* @OnStart(-1)
*/
#[OnStart(-1)]
public function initContainer()
{
$worker_container = new WorkerContainer();
$worker_container->bindIf('echo', function ($container, $parameters) {
return 'Hello, ' . $parameters[0];
});
container()->bind(ContextInterface::class, function () {
return ctx();
});
}
/**
* 容器呐
* 欢迎来到容器时代
*
* @CQCommand("container")
* @param Context $context 通过依赖注入实现的
*
* @CQCommand("容器你好")
*/
#[CQCommand('container')]
public function container(): string
public function welcomeToContainerAge(Context $context)
{
resolve(ContextInterface::class)->reply('Good'); // ctx()->reply('good')
return resolve('echo', ['hello']); // Hello, hello
$context->reply('欢迎来到容器时代');
}
}