mirror of
https://github.com/zhamao-robot/zhamao-framework.git
synced 2026-03-17 20:54:52 +08:00
update some doc and types
This commit is contained in:
parent
d7e815d670
commit
96879bf415
@ -18,12 +18,6 @@ $config['servers'] = [
|
||||
'type' => 'http',
|
||||
'flag' => 20002,
|
||||
],
|
||||
[
|
||||
'host' => '0.0.0.0',
|
||||
'port' => 20003,
|
||||
'type' => 'http',
|
||||
'flag' => 20003,
|
||||
],
|
||||
];
|
||||
|
||||
/* Workerman 驱动相关配置 */
|
||||
|
||||
@ -12,6 +12,7 @@ use ZM\Container\ContainerHolder;
|
||||
use ZM\Logger\ConsoleLogger;
|
||||
use ZM\Middleware\MiddlewareHandler;
|
||||
use ZM\Store\Database\DBException;
|
||||
use ZM\Store\Database\DBQueryBuilder;
|
||||
use ZM\Store\Database\DBWrapper;
|
||||
|
||||
// 防止重复引用引发报错
|
||||
@ -209,7 +210,7 @@ function db(string $name = '')
|
||||
*
|
||||
* @throws DBException
|
||||
*/
|
||||
function sql_builder(string $name = '')
|
||||
function sql_builder(string $name = ''): DBQueryBuilder
|
||||
{
|
||||
return (new DBWrapper($name))->createQueryBuilder();
|
||||
}
|
||||
|
||||
@ -4,6 +4,7 @@ declare(strict_types=1);
|
||||
|
||||
namespace ZM\Event\Listener;
|
||||
|
||||
use OneBot\Driver\Coroutine\Adaptive;
|
||||
use OneBot\Driver\Process\ProcessManager;
|
||||
use OneBot\Util\Singleton;
|
||||
use ZM\Annotation\AnnotationHandler;
|
||||
@ -35,6 +36,8 @@ class WorkerEventListener
|
||||
// 自注册一下,刷新当前进程的logger进程banner
|
||||
ob_logger_register(ob_logger());
|
||||
|
||||
Adaptive::initWithDriver(Framework::getInstance()->getDriver());
|
||||
|
||||
// 如果没有引入参数disable-safe-exit,则监听 Ctrl+C
|
||||
if (!Framework::getInstance()->getArgv()['disable-safe-exit'] && PHP_OS_FAMILY !== 'Windows') {
|
||||
SignalListener::getInstance()->signalWorker();
|
||||
@ -42,12 +45,10 @@ class WorkerEventListener
|
||||
|
||||
// Windows 环境下,为了监听 Ctrl+C,只能开启终端输入
|
||||
if (PHP_OS_FAMILY === 'Windows') {
|
||||
logger()->debug('监听Windows的键盘输入');
|
||||
sapi_windows_set_ctrl_handler([SignalListener::getInstance(), 'signalWindowsCtrlC']);
|
||||
Framework::getInstance()->getDriver()->getEventLoop()->addReadEvent(STDIN, function ($x) {});
|
||||
}
|
||||
|
||||
logger()->debug('Worker #' . ProcessManager::getProcessId() . ' started');
|
||||
|
||||
// 设置 Worker 进程的状态和 ID 等信息
|
||||
if (($name = Framework::getInstance()->getDriver()->getName()) === 'swoole') {
|
||||
/* @phpstan-ignore-next-line */
|
||||
@ -88,17 +89,23 @@ class WorkerEventListener
|
||||
$this->initUserPlugins();
|
||||
|
||||
// handle @Init annotation
|
||||
$this->dispatchInit();
|
||||
|
||||
Adaptive::getCoroutine()->create(function () {
|
||||
$this->dispatchInit();
|
||||
});
|
||||
// 回显 debug 日志:进程占用的内存
|
||||
$memory_total = memory_get_usage() / 1024 / 1024;
|
||||
logger()->debug('Worker process used ' . round($memory_total, 3) . ' MB');
|
||||
}
|
||||
|
||||
public function onWorkerStart1(): void
|
||||
{
|
||||
logger()->debug('Worker #' . ProcessManager::getProcessId() . ' started');
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws ZMKnownException
|
||||
*/
|
||||
public function onWorkerStop999()
|
||||
public function onWorkerStop999(): void
|
||||
{
|
||||
logger()->debug('Worker #' . ProcessManager::getProcessId() . ' stopping');
|
||||
if (DIRECTORY_SEPARATOR !== '\\') {
|
||||
@ -110,11 +117,16 @@ class WorkerEventListener
|
||||
}
|
||||
}
|
||||
|
||||
public function onWorkerStop1(): void
|
||||
{
|
||||
logger()->debug('Worker #' . ProcessManager::getProcessId() . ' stopped');
|
||||
}
|
||||
|
||||
/**
|
||||
* 加载用户代码资源,包括普通插件、单文件插件、Composer 插件等
|
||||
* @throws \Throwable
|
||||
*/
|
||||
private function initUserPlugins()
|
||||
private function initUserPlugins(): void
|
||||
{
|
||||
logger()->debug('Loading user sources');
|
||||
|
||||
|
||||
@ -46,7 +46,7 @@ class Framework
|
||||
public const VERSION_ID = 650;
|
||||
|
||||
/** @var string 版本名称 */
|
||||
public const VERSION = '3.0.0-beta2';
|
||||
public const VERSION = '3.0.0-beta3';
|
||||
|
||||
/** @var array 传入的参数 */
|
||||
protected array $argv;
|
||||
@ -228,7 +228,9 @@ class Framework
|
||||
// 添加框架需要监听的顶层事件监听器
|
||||
// worker 事件
|
||||
ob_event_provider()->addEventListener(WorkerStartEvent::getName(), [WorkerEventListener::getInstance(), 'onWorkerStart999'], 999);
|
||||
ob_event_provider()->addEventListener(WorkerStartEvent::getName(), [WorkerEventListener::getInstance(), 'onWorkerStart1'], 1);
|
||||
ob_event_provider()->addEventListener(WorkerStopEvent::getName(), [WorkerEventListener::getInstance(), 'onWorkerStop999'], 999);
|
||||
ob_event_provider()->addEventListener(WorkerStopEvent::getName(), [WorkerEventListener::getInstance(), 'onWorkerStop1'], 1);
|
||||
// Http 事件
|
||||
ob_event_provider()->addEventListener(HttpRequestEvent::getName(), [HttpEventListener::getInstance(), 'onRequest999'], 999);
|
||||
ob_event_provider()->addEventListener(HttpRequestEvent::getName(), [HttpEventListener::getInstance(), 'onRequest1'], 1);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user