diff --git a/src/AppKernelAdapter.php b/src/AppKernelAdapter.php new file mode 100644 index 0000000..c0c5703 --- /dev/null +++ b/src/AppKernelAdapter.php @@ -0,0 +1,106 @@ +kernel + ->preload() + ->then(function () { + $container = $this->kernel->getContainer(); + $serverContext = $this->serverContext; + + if ( + class_exists(EventBusSubscriber::class) && + $serverContext->hasExchanges() && + $container->has(EventBusSubscriber::class) + ) { + $eventBusSubscriber = $container->get(EventBusSubscriber::class); + $eventBusSubscriber->subscribeToExchanges( + $serverContext->getExchanges(), + $this->outputPrinter + ); + } + }); + } + + /** + * @param Kernel|AsyncKernel $kernel + * @param Request $request + * + * @return PromiseInterface + */ + protected function kernelHandle( + Kernel $kernel, + Request $request + ): PromiseInterface { + return $kernel->handleAsync($request); + } + + /** + * @return PromiseInterface + */ + public function shutDown(): PromiseInterface + { + $resolver = function (callable $resolve, callable $reject) { + $this->kernel->shutdown(); + $resolve(); + }; + + return new Promise($resolver); + } + + /** + * Get watcher folders. + * + * @return string[] + */ + public static function getObservableFolders(): array + { + return ['src', 'public', 'views']; + } +}