config = $container->get(ConfigInterface::class); $this->logger = $container->get(StdoutLoggerInterface::class); $this->driverFactory = $container->get(DriverFactory::class); } public function bind($server): void { $this->server = $server; parent::bind($server); } public function isEnable($server): bool { return $server instanceof Server && $this->config->get('config_center.enable', false) && strtolower($this->config->get('config_center.mode', Mode::PROCESS)) === Mode::PROCESS; } public function handle(): void { $driver = $this->config->get('config_center.driver', ''); if (! $driver) { return; } $instance = $this->driverFactory->create($driver, [ 'setServer' => $this->server, ]); $instance->createMessageFetcherLoop(); while (ProcessManager::isRunning()) { sleep(1); } } }