diff --git a/Kiri.php b/Kiri.php index dc1b46b8..216df6db 100644 --- a/Kiri.php +++ b/Kiri.php @@ -7,7 +7,6 @@ error_reporting(0); use JetBrains\PhpStorm\Pure; use Kiri\Di\Container; -use Kiri\Di\LocalService; use Kiri\Environmental; use Kiri\Error\StdoutLogger; use Swoole\Coroutine; @@ -121,19 +120,9 @@ class Kiri } - /** - * @return LocalService - * @throws ReflectionException - */ - public static function service(): LocalService - { - return static::getContainer()->get(LocalService::class); - } - - /** * @return StdoutLogger - * @throws ReflectionException + * @throws ReflectionException|Exception */ public static function getLogger(): StdoutLogger { diff --git a/kiri-engine/Abstracts/BaseApplication.php b/kiri-engine/Abstracts/BaseApplication.php index 5d14a10e..1f376a3a 100644 --- a/kiri-engine/Abstracts/BaseApplication.php +++ b/kiri-engine/Abstracts/BaseApplication.php @@ -14,7 +14,6 @@ use Database\DatabasesProviders; use Exception; use Kiri; use Kiri\Events\EventInterface; -use Kiri\Di\LocalService; use Kiri\Config\ConfigProvider; use Kiri\Exception\{InitException}; use Psr\Container\ContainerExceptionInterface; @@ -41,37 +40,15 @@ abstract class BaseApplication extends Component /** - * @var LocalService|mixed + * @param EventProvider $provider + * @param ConfigProvider $config + * @param ContainerInterface $container + * @throws ContainerExceptionInterface + * @throws InitException + * @throws NotFoundExceptionInterface */ - public LocalService $localService; - - - /** - * @var ContainerInterface - */ - public ContainerInterface $container; - - - /** - * @var EventProvider - */ - public EventProvider $provider; - - /** - * Init constructor. - * - * - * @throws - */ - public function __construct() + public function __construct(public EventProvider $provider, public ConfigProvider $config, public ContainerInterface $container) { - $this->container = Kiri::getContainer(); - $this->localService = $this->container->get(LocalService::class); - - $this->provider = $this->container->get(EventProvider::class); - - $config = $this->container->get(ConfigProvider::class); - $this->mapping($config); $this->parseStorage($config); $this->parseEvents($config); @@ -91,9 +68,6 @@ abstract class BaseApplication extends Component foreach ($config->get('mapping', []) as $interface => $class) { $this->container->set($interface, $class); } - foreach ($config->get('components', []) as $id => $component) { - $this->localService->set($id, Kiri::createObject($component)); - } } @@ -122,7 +96,6 @@ abstract class BaseApplication extends Component * @return void * @throws ContainerExceptionInterface * @throws NotFoundExceptionInterface - * @throws ReflectionException * @throws Exception */ public function parseEvents(ConfigProvider $config): void diff --git a/kiri-engine/Abstracts/Provider.php b/kiri-engine/Abstracts/Provider.php index c2dcf29b..79a0a80e 100644 --- a/kiri-engine/Abstracts/Provider.php +++ b/kiri-engine/Abstracts/Provider.php @@ -4,11 +4,9 @@ declare(strict_types=1); namespace Kiri\Abstracts; -use Kiri\Di\LocalService; - interface Provider { - public function onImport(LocalService $application); + public function onImport(); } diff --git a/kiri-engine/Application.php b/kiri-engine/Application.php index 2fb141cd..09bff457 100644 --- a/kiri-engine/Application.php +++ b/kiri-engine/Application.php @@ -120,15 +120,17 @@ class Application extends BaseApplication /** - * @param string $command + * @param string ...$command * @return void * @throws ContainerExceptionInterface * @throws NotFoundExceptionInterface */ - public function command(string $command): void + public function command(string ...$command): void { $console = $this->container->get(ConsoleApplication::class); - $console->add($this->container->get($command)); + foreach ($command as $value) { + $console->add($this->container->get($value)); + } } @@ -142,17 +144,19 @@ class Application extends BaseApplication */ public function execute(array $argv): void { - [$input, $output] = [new ArgvInput($argv), new ConsoleOutput()]; - $this->container->bind(ArgvInput::class, $input); - $this->container->bind(OutputInterface::class, $output); + /** @var ArgvInput $input */ + $input = $this->container->bind(ArgvInput::class, new ArgvInput($argv)); + + /** @var ConsoleOutput $output */ + $output = $this->container->bind(OutputInterface::class, new ConsoleOutput()); $console = $this->container->get(ConsoleApplication::class); $command = $console->find($input->getFirstArgument() ?? 'list'); fire(new OnBeforeCommandExecute($command)); - $command->run($input, $output); fire(new OnAfterCommandExecute($command)); + $output->writeln('execute complete.'); }