route = $route; $this->_injectParams($callback); $this->callback = $callback; $dispatcher = Kiri::getDi()->get(EventProvider::class); $dispatcher->on(OnAfterWorkerStart::class, function () { $this->_middlewares = MiddlewareManager::get($this->route); }); } /** * @param array|Closure $callback * @throws \ReflectionException */ private function _injectParams(array|Closure $callback) { $container = Kiri::getDi(); if (!($callback instanceof Closure)) { $this->params = $container->getMethodParameters($callback[0], $callback[1]); } else { $this->params = $container->getFunctionParameters($callback); } } }