argv['path'])) { throw new \Exception('Missing module path "--path" specified'); } if (file_exists(ROOT_DIR . $this->argv['path'])) { $moduleService = new ModuleService(); if ($moduleService->installModule($this->argv['path'])) { $this->out->r("Модуль установлен", 'green'); } else { $this->out->r("Ошибка установки модуля", 'red'); } } else { $this->out->r("Модуль не найден", 'red'); } } /** * @throws \Exception */ public function actionUninstallModule(): void { if (!isset($this->argv['path'])) { throw new \Exception('Missing module path "--path" specified'); } if (file_exists(ROOT_DIR . $this->argv['path'])) { $moduleService = new ModuleService(); $moduleService->uninstallModule($this->argv['path']); $this->out->r("Модуль удален", 'green'); } else { $this->out->r("Модуль не найден", 'red'); } } /** * @throws \Exception */ public function actionPackModule(): void { if (!isset($this->argv['path'])) { throw new \Exception('Missing module path "--path" specified'); } if (file_exists(ROOT_DIR . $this->argv['path'])) { $moduleService = new ModuleService(); $moduleService->packModule($this->argv['path']); $this->out->r("Модуль заархивирован", 'green'); } else { $this->out->r("Модуль не найден", 'red'); } } /** * @throws \Exception */ public function actionUpdateModule(): void { if (!isset($this->argv['path'])) { throw new \Exception('Missing module path "--path" specified'); } if (file_exists(ROOT_DIR . $this->argv['path'])) { $moduleService = new ModuleService(); if ($moduleService->updateModule($this->argv['path'])) { $this->out->r("Модуль обновлен", 'green'); } else { $this->out->r("Ошибка обновления модуля", 'red'); } } else { $this->out->r("Модуль не найден", 'red'); } } public function actionConstructModule(): void { $this->out->r("Введите название модуля:", 'yellow'); $name = substr(fgets(STDIN), 0, -1); $this->out->r("Введите автора модуля:", 'yellow'); $author = substr(fgets(STDIN), 0, -1); $slug = strtolower($name); $moduleService = new ModuleService(); $moduleService->createDirs($slug); $moduleService->createManifest([ 'name' => $name, 'author' => $author, 'slug' => $slug ]); $moduleService->createControllers($slug); } }