mirror of
https://github.com/zhamao-robot/zhamao-framework.git
synced 2026-03-18 05:04:51 +08:00
47 lines
1.2 KiB
Plaintext
47 lines
1.2 KiB
Plaintext
|
|
#!/usr/bin/env php
|
|||
|
|
<?php
|
|||
|
|
/** For Swoole coroutine tests */
|
|||
|
|
|
|||
|
|
// 如果改成 true,则会在终端显示所有炸毛框架的 Log
|
|||
|
|
const ZM_TEST_LOG_DEBUG = false;
|
|||
|
|
|
|||
|
|
use OneBot\Driver\Event\Process\WorkerStartEvent;
|
|||
|
|
use PHPUnit\TextUI\Command;
|
|||
|
|
use ZM\Command\Server\ServerStartCommand;
|
|||
|
|
use ZM\Framework;
|
|||
|
|
use ZM\Logger\ConsoleLogger;
|
|||
|
|
|
|||
|
|
$root = dirname(__DIR__);
|
|||
|
|
|
|||
|
|
require $root . '/vendor/autoload.php';
|
|||
|
|
|
|||
|
|
global $_swoole_atomic;
|
|||
|
|
$_swoole_atomic = new \Swoole\Atomic();
|
|||
|
|
|
|||
|
|
ob_logger_register(new ConsoleLogger('error'));
|
|||
|
|
global $ob_event_provider;
|
|||
|
|
$ob_event_provider = new \ZM\Event\EventProvider();
|
|||
|
|
|
|||
|
|
ob_event_provider()->addEventListener(WorkerStartEvent::getName(), function () {
|
|||
|
|
try {
|
|||
|
|
$retcode = Command::main(false);
|
|||
|
|
} finally {
|
|||
|
|
global $_swoole_atomic;
|
|||
|
|
$_swoole_atomic->set($retcode ?? 0);
|
|||
|
|
Framework::getInstance()->stop();
|
|||
|
|
}
|
|||
|
|
}, 1);
|
|||
|
|
|
|||
|
|
try {
|
|||
|
|
$options = ServerStartCommand::exportOptionArray();
|
|||
|
|
$options['driver'] = 'swoole';
|
|||
|
|
$options['worker-num'] = 1;
|
|||
|
|
$options['private-mode'] = true;
|
|||
|
|
(new Framework($options))->init()->start();
|
|||
|
|
|
|||
|
|
exit($_swoole_atomic->get());
|
|||
|
|
} catch (Throwable $e) {
|
|||
|
|
echo $e->getMessage() . PHP_EOL;
|
|||
|
|
exit(1);
|
|||
|
|
}
|