改名
This commit is contained in:
@@ -2,18 +2,23 @@
|
|||||||
|
|
||||||
namespace Server;
|
namespace Server;
|
||||||
|
|
||||||
|
use Annotation\Inject;
|
||||||
use Closure;
|
use Closure;
|
||||||
use Exception;
|
use Exception;
|
||||||
use Http\Route\Router;
|
use Http\Route\Router;
|
||||||
use Kiri\Abstracts\Config;
|
use Kiri\Abstracts\Config;
|
||||||
|
use Kiri\Di\ContainerInterface;
|
||||||
use Kiri\Exception\ConfigException;
|
use Kiri\Exception\ConfigException;
|
||||||
use Kiri\Exception\NotFindClassException;
|
|
||||||
use Kiri\Kiri;
|
use Kiri\Kiri;
|
||||||
use ReflectionException;
|
use ReflectionException;
|
||||||
use Server\Manager\OnPipeMessage;
|
use Server\Manager\OnPipeMessage;
|
||||||
|
use Server\Manager\OnServer;
|
||||||
|
use Server\Manager\OnServerManager;
|
||||||
|
use Server\Manager\OnServerReload;
|
||||||
use Server\SInterface\CustomProcess;
|
use Server\SInterface\CustomProcess;
|
||||||
use Server\SInterface\TaskExecute;
|
use Server\SInterface\TaskExecute;
|
||||||
use Server\Task\OnServerTask;
|
use Server\Task\OnServerTask;
|
||||||
|
use Server\Worker\OnServerWorker;
|
||||||
use Swoole\Http\Server as HServer;
|
use Swoole\Http\Server as HServer;
|
||||||
use Swoole\Process;
|
use Swoole\Process;
|
||||||
use Swoole\Server;
|
use Swoole\Server;
|
||||||
@@ -43,6 +48,27 @@ class ServerManager
|
|||||||
private Server|null $server = null;
|
private Server|null $server = null;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var ContainerInterface
|
||||||
|
*/
|
||||||
|
#[Inject(ContainerInterface::class)]
|
||||||
|
public ContainerInterface $container;
|
||||||
|
|
||||||
|
|
||||||
|
const DEFAULT_EVENT = [
|
||||||
|
Constant::WORKER_START => [OnServerWorker::class, 'onWorkerStart'],
|
||||||
|
Constant::WORKER_EXIT => [OnServerWorker::class, 'onWorkerExit'],
|
||||||
|
Constant::WORKER_STOP => [OnServerWorker::class, 'onWorkerStop'],
|
||||||
|
Constant::WORKER_ERROR => [OnServerWorker::class, 'onWorkerError'],
|
||||||
|
Constant::MANAGER_START => [OnServerManager::class, 'onManagerStart'],
|
||||||
|
Constant::MANAGER_STOP => [OnServerManager::class, 'onManagerStop'],
|
||||||
|
Constant::BEFORE_RELOAD => [OnServerReload::class, 'onBeforeReload'],
|
||||||
|
Constant::AFTER_RELOAD => [OnServerReload::class, 'onAfterReload'],
|
||||||
|
Constant::START => [OnServer::class, 'onStart'],
|
||||||
|
Constant::SHUTDOWN => [OnServer::class, 'onShutdown'],
|
||||||
|
];
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return Server|WServer|HServer|null
|
* @return Server|WServer|HServer|null
|
||||||
*/
|
*/
|
||||||
@@ -87,7 +113,7 @@ class ServerManager
|
|||||||
$this->startListenerHandler($context, $config, $daemon);
|
$this->startListenerHandler($context, $config, $daemon);
|
||||||
}
|
}
|
||||||
$this->bindCallback($this->server, [Constant::PIPE_MESSAGE => [OnPipeMessage::class, 'onPipeMessage']]);
|
$this->bindCallback($this->server, [Constant::PIPE_MESSAGE => [OnPipeMessage::class, 'onPipeMessage']]);
|
||||||
$this->bindCallback($this->server, $this->getSystemEvents($configs));
|
// $this->bindCallback($this->server, $this->getSystemEvents($configs));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -210,27 +236,6 @@ class ServerManager
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param array $configs
|
|
||||||
* @return array
|
|
||||||
*/
|
|
||||||
private function getSystemEvents(array $configs): array
|
|
||||||
{
|
|
||||||
return array_intersect_key($configs['events'] ?? [], [
|
|
||||||
Constant::SHUTDOWN => '',
|
|
||||||
Constant::WORKER_START => '',
|
|
||||||
Constant::WORKER_ERROR => '',
|
|
||||||
Constant::WORKER_EXIT => '',
|
|
||||||
Constant::WORKER_STOP => '',
|
|
||||||
Constant::MANAGER_START => '',
|
|
||||||
Constant::MANAGER_STOP => '',
|
|
||||||
Constant::BEFORE_RELOAD => '',
|
|
||||||
Constant::AFTER_RELOAD => '',
|
|
||||||
Constant::START => '',
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param ServerManager $context
|
* @param ServerManager $context
|
||||||
* @param array $config
|
* @param array $config
|
||||||
@@ -392,9 +397,8 @@ class ServerManager
|
|||||||
if (($this->server->setting['task_worker_num'] ?? 0) > 0) {
|
if (($this->server->setting['task_worker_num'] ?? 0) > 0) {
|
||||||
$this->addTaskListener($settings['events']);
|
$this->addTaskListener($settings['events']);
|
||||||
}
|
}
|
||||||
$this->addServiceEvents($settings['events'] ?? [], $this->server);
|
$this->addServiceEvents(ServerManager::DEFAULT_EVENT, $this->server);
|
||||||
Kiri::getDi()->setBindings(SwooleServerInterface::class,
|
$this->container->setBindings(SwooleServerInterface::class, $this->server);
|
||||||
$this->server);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -406,7 +410,7 @@ class ServerManager
|
|||||||
{
|
{
|
||||||
foreach ($events as $name => $event) {
|
foreach ($events as $name => $event) {
|
||||||
if (is_array($event) && is_string($event[0])) {
|
if (is_array($event) && is_string($event[0])) {
|
||||||
$event[0] = Kiri::getDi()->get($event[0], [$server]);
|
$event[0] = $this->container->get($event[0], [$server]);
|
||||||
}
|
}
|
||||||
$server->on($name, $event);
|
$server->on($name, $event);
|
||||||
}
|
}
|
||||||
@@ -428,7 +432,7 @@ class ServerManager
|
|||||||
*/
|
*/
|
||||||
private function getNewInstance(string $class): object
|
private function getNewInstance(string $class): object
|
||||||
{
|
{
|
||||||
return Kiri::getDi()->newObject($class);
|
return $this->container->newObject($class);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -446,7 +450,7 @@ class ServerManager
|
|||||||
$this->server->setting['worker_num'] + 1 + $this->server->setting['task_worker_num']);
|
$this->server->setting['worker_num'] + 1 + $this->server->setting['task_worker_num']);
|
||||||
}
|
}
|
||||||
if (is_string($handler)) {
|
if (is_string($handler)) {
|
||||||
$implements = Kiri::getDi()->getReflect($handler);
|
$implements = $this->container->getReflect($handler);
|
||||||
if (!in_array(TaskExecute::class, $implements->getInterfaceNames())) {
|
if (!in_array(TaskExecute::class, $implements->getInterfaceNames())) {
|
||||||
throw new Exception('Task must instance ' . TaskExecute::class);
|
throw new Exception('Task must instance ' . TaskExecute::class);
|
||||||
}
|
}
|
||||||
@@ -474,7 +478,7 @@ class ServerManager
|
|||||||
private function addTaskListener(array $events = []): void
|
private function addTaskListener(array $events = []): void
|
||||||
{
|
{
|
||||||
$task_use_object = $this->server->setting['task_object'] ?? $this->server->setting['task_use_object'] ?? false;
|
$task_use_object = $this->server->setting['task_object'] ?? $this->server->setting['task_use_object'] ?? false;
|
||||||
$reflect = Kiri::getDi()->getReflect(OnServerTask::class)?->newInstance();
|
$reflect = $this->container->getReflect(OnServerTask::class)?->newInstance();
|
||||||
if ($task_use_object || $this->server->setting['task_enable_coroutine']) {
|
if ($task_use_object || $this->server->setting['task_enable_coroutine']) {
|
||||||
$this->server->on('task', $events[Constant::TASK] ?? [$reflect, 'onCoroutineTask']);
|
$this->server->on('task', $events[Constant::TASK] ?? [$reflect, 'onCoroutineTask']);
|
||||||
} else {
|
} else {
|
||||||
@@ -499,7 +503,7 @@ class ServerManager
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (is_array($callback) && !is_object($callback[0])) {
|
if (is_array($callback) && !is_object($callback[0])) {
|
||||||
$callback[0] = Kiri::getDi()->get($callback[0]);
|
$callback[0] = $this->container->get($callback[0]);
|
||||||
}
|
}
|
||||||
$this->server->on($event_type, $callback);
|
$this->server->on($event_type, $callback);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user