diff --git a/kiri-engine/Abstracts/BaseMain.php b/kiri-engine/Abstracts/BaseMain.php index 7f4cb374..202a4643 100644 --- a/kiri-engine/Abstracts/BaseMain.php +++ b/kiri-engine/Abstracts/BaseMain.php @@ -16,12 +16,6 @@ use Kiri\Di\LocalService; use Kiri\Error\{ErrorHandler, StdoutLogger, StdoutLoggerInterface}; use Kiri\Exception\{InitException}; use Kiri\Di\ContainerInterface; -use Kiri\Message\Constrict\Request; -use Kiri\Message\Constrict\RequestInterface; -use Kiri\Message\Constrict\Response; -use Kiri\Message\Constrict\ResponseInterface; -use Kiri\Message\Emitter; -use Kiri\Message\ResponseEmitter; use Kiri\Server\{Server}; use Psr\Log\LoggerInterface; use Kiri\Events\EventProvider; @@ -64,13 +58,15 @@ abstract class BaseMain extends Component public function mapping(array $mapping) { $di = Kiri::getDi(); - $di->mapping(StdoutLoggerInterface::class, StdoutLogger::class); - $di->mapping(LoggerInterface::class, Logger::class); - $di->mapping(Emitter::class, ResponseEmitter::class); - $di->mapping(ResponseInterface::class, Response::class); - $di->mapping(RequestInterface::class, Request::class); + $di->set(StdoutLoggerInterface::class, StdoutLogger::class); + $di->set(LoggerInterface::class, Logger::class); foreach ($mapping as $interface => $class) { - $di->mapping($interface, $class); + $di->set($interface, $class); + } + + $components = Config::get('components', []); + foreach ($components as $id => $component) { + $this->set($id, $component); } } diff --git a/kiri-engine/Main.php b/kiri-engine/Main.php index 57204bb5..c69c7f7e 100644 --- a/kiri-engine/Main.php +++ b/kiri-engine/Main.php @@ -50,7 +50,6 @@ class Main extends BaseMain * @return void * @throws ContainerExceptionInterface * @throws NotFoundExceptionInterface - * @throws ConfigException */ public function init(): void { @@ -136,10 +135,10 @@ class Main extends BaseMain private function argument($argv): array { $input = new ArgvInput($argv); - $this->container->setBindings(ArgvInput::class, $input); + $this->container->bind(ArgvInput::class, $input); $output = new ConsoleOutput(); - $this->container->setBindings(OutputInterface::class, $output); + $this->container->bind(OutputInterface::class, $output); return [$input, $output]; }