kernel update
This commit is contained in:
@ -4,6 +4,8 @@
|
||||
namespace kernel\console;
|
||||
|
||||
|
||||
use kernel\helpers\Debug;
|
||||
|
||||
class Out
|
||||
{
|
||||
private $foreground_colors = array();
|
||||
@ -64,6 +66,11 @@ class Out
|
||||
echo $this->get($string, $foreground_color, $background_color) . "\n";
|
||||
}
|
||||
|
||||
public function inLine($string, $foreground_color = null, $background_color = null): void
|
||||
{
|
||||
echo $this->get($string, $foreground_color, $background_color) ;
|
||||
}
|
||||
|
||||
// Returns all foreground color names
|
||||
public function getForegroundColors()
|
||||
{
|
||||
@ -75,4 +82,16 @@ class Out
|
||||
{
|
||||
return array_keys($this->background_colors);
|
||||
}
|
||||
|
||||
// public function printHeaderTable(): void
|
||||
// {
|
||||
// echo "\n+-----------------------------+-----------------------------+-----------------------------+-----------------------------+\n";
|
||||
// printf("%-30s", "| Routs");
|
||||
// printf("%-30s", "| Description");
|
||||
// printf("%-30s", "| Params");
|
||||
// printf("%-30s", "| Params description");
|
||||
// printf("%-30s", "|");
|
||||
// echo "\n+-----------------------------+-----------------------------+-----------------------------+-----------------------------+\n";
|
||||
// }
|
||||
|
||||
}
|
@ -27,7 +27,7 @@ class KernelController extends ConsoleController
|
||||
|
||||
if (file_exists(ROOT_DIR . $this->argv['path'])) {
|
||||
$tmpKernelDirFull = RESOURCES_DIR . '/tmp/ad/kernel/kernel';
|
||||
$this->files->copy_folder(KERNEL_DIR, $tmpKernelDirFull);
|
||||
$this->files->copy_folder(ROOT_DIR . $this->argv['path'], $tmpKernelDirFull);
|
||||
$this->out->r("Ядро скопировано во временную папку", 'green');
|
||||
} else {
|
||||
$this->out->r("Ядро не найдено", 'red');
|
||||
@ -65,11 +65,19 @@ class KernelController extends ConsoleController
|
||||
$this->out->r("/composer.json не найден", 'red');
|
||||
}
|
||||
|
||||
if (!is_dir(RESOURCES_DIR . '/tmp/app')) {
|
||||
mkdir(RESOURCES_DIR . '/tmp/app');
|
||||
if (!is_dir(RESOURCES_DIR . '/tmp/kernel')) {
|
||||
mkdir(RESOURCES_DIR . '/tmp/kernel');
|
||||
}
|
||||
|
||||
if (file_exists(KERNEL_DIR . '/manifest.json')) {
|
||||
$manifest = json_decode(file_get_contents(KERNEL_DIR . '/manifest.json'), true);
|
||||
$version = $manifest['version'] ?? '';
|
||||
$this->files->pack(RESOURCES_DIR . '/tmp/ad/kernel/', RESOURCES_DIR . '/tmp/kernel/kernel_v' . $version . '.igk');
|
||||
}
|
||||
else {
|
||||
$this->files->pack(RESOURCES_DIR . '/tmp/ad/kernel/', RESOURCES_DIR . '/tmp/kernel/kernel.igk');
|
||||
}
|
||||
|
||||
$this->files->pack(RESOURCES_DIR . '/tmp/ad/kernel/', RESOURCES_DIR . '/tmp/kernel/kernel.igk');
|
||||
$this->files->recursiveRemoveDir(RESOURCES_DIR . '/tmp/ad/kernel/');
|
||||
}
|
||||
|
||||
|
@ -2,7 +2,9 @@
|
||||
|
||||
namespace kernel\console\controllers;
|
||||
|
||||
use kernel\App;
|
||||
use kernel\console\ConsoleController;
|
||||
use kernel\helpers\Debug;
|
||||
|
||||
class MainController extends ConsoleController
|
||||
{
|
||||
@ -12,4 +14,25 @@ class MainController extends ConsoleController
|
||||
$this->out->r("Привет", "green");
|
||||
}
|
||||
|
||||
public function actionHelp(): void
|
||||
{
|
||||
$routs = App::$collector->getData()->getStaticRoutes();
|
||||
foreach ($routs as $rout => $data){
|
||||
$additionalInfo = $data['GET'][3];
|
||||
if (isset($additionalInfo['description']) and $additionalInfo['type'] === "console"){
|
||||
$this->out->inLine($rout . " - ", "green");
|
||||
$this->out->inLine($additionalInfo['description'], 'yellow');
|
||||
$this->out->r("");
|
||||
if (isset($additionalInfo['params'])){
|
||||
foreach ($additionalInfo['params'] as $key => $param){
|
||||
$this->out->inLine($key . " - ", "green");
|
||||
$this->out->inLine($param, 'yellow');
|
||||
$this->out->r("");
|
||||
}
|
||||
}
|
||||
$this->out->r("");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@ -90,4 +90,33 @@ class ModuleController extends ConsoleController
|
||||
}
|
||||
}
|
||||
|
||||
public function actionConstructModule(): void
|
||||
{
|
||||
$this->out->r("Введите slug модуля:", 'yellow');
|
||||
$slug = substr(fgets(STDIN), 0, -1);
|
||||
$slug = strtolower($slug);
|
||||
|
||||
$this->out->r("Введите название модуля:", 'yellow');
|
||||
$name = substr(fgets(STDIN), 0, -1);
|
||||
|
||||
$this->out->r("Введите автора модуля:", 'yellow');
|
||||
$author = substr(fgets(STDIN), 0, -1);
|
||||
|
||||
$this->out->r("Введите название пунтка меню для модуля:", 'yellow');
|
||||
$label = substr(fgets(STDIN), 0, -1);
|
||||
|
||||
$moduleService = new ModuleService();
|
||||
$moduleService->createDirs($slug);
|
||||
|
||||
$moduleService->createModuleByParams([
|
||||
'slug' => $slug,
|
||||
'model' => ucfirst($slug),
|
||||
'author' => $author,
|
||||
'name' => $name,
|
||||
'label' => $label,
|
||||
]);
|
||||
|
||||
$this->out->r("Модуль $slug создан", 'green');
|
||||
}
|
||||
|
||||
}
|
@ -6,6 +6,7 @@ use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
public string $migration;
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
|
@ -1,41 +1,96 @@
|
||||
<?php
|
||||
|
||||
use kernel\App;
|
||||
use kernel\console\controllers\MigrationController;
|
||||
use Phroute\Phroute\RouteCollector;
|
||||
|
||||
App::$collector->console("hello", [\kernel\console\controllers\MainController::class, "indexAction"]);
|
||||
App::$collector->console("help", [\kernel\console\controllers\MainController::class, "actionHelp"]);
|
||||
|
||||
App::$collector->group(["prefix" => "migration"], callback: function (RouteCollector $router){
|
||||
App::$collector->console('run', [\kernel\console\controllers\MigrationController::class, 'actionRun']);
|
||||
App::$collector->console('init', [\kernel\console\controllers\MigrationController::class, 'actionCreateMigrationTable']);
|
||||
App::$collector->console('create', [\kernel\console\controllers\MigrationController::class, 'actionCreate']);
|
||||
App::$collector->console('rollback', [\kernel\console\controllers\MigrationController::class, 'actionRollback']);
|
||||
App::$collector->console('run',
|
||||
[MigrationController::class, 'actionRun'],
|
||||
additionalInfo: ['description' => 'Запуск существующих миграций']
|
||||
);
|
||||
App::$collector->console('init',
|
||||
[MigrationController::class, 'actionCreateMigrationTable'],
|
||||
additionalInfo: ['description' => 'Инициализация миграций']
|
||||
);
|
||||
App::$collector->console('create',
|
||||
[MigrationController::class, 'actionCreate'],
|
||||
additionalInfo: ['description' => 'Создание миграции', 'params' => ['--name' => 'Название миграции', '--path' => 'Путь по которому будет создана миграция']]
|
||||
);
|
||||
App::$collector->console('rollback',
|
||||
[MigrationController::class, 'actionRollback'],
|
||||
additionalInfo: ['description' => 'Откатить миграции']
|
||||
);
|
||||
});
|
||||
|
||||
App::$collector->group(["prefix" => "admin-theme"], callback: function (RouteCollector $router){
|
||||
App::$collector->console('install', [\kernel\console\controllers\AdminThemeController::class, 'actionInstallTheme']);
|
||||
App::$collector->console('uninstall', [\kernel\console\controllers\AdminThemeController::class, 'actionUninstallTheme']);
|
||||
App::$collector->console('install',
|
||||
[\kernel\console\controllers\AdminThemeController::class, 'actionInstallTheme'],
|
||||
additionalInfo: ['description' => 'Установить тему админ-панели', 'params' => ['--path' => 'Путь к устанавливаемой теме']]
|
||||
);
|
||||
App::$collector->console('uninstall',
|
||||
[\kernel\console\controllers\AdminThemeController::class, 'actionUninstallTheme'],
|
||||
additionalInfo: ['description' => 'Удалить тему админ-панели', 'params' => ['--path' => 'Путь к удаляемой теме']]
|
||||
);
|
||||
});
|
||||
|
||||
App::$collector->group(["prefix" => "secure"], callback: function (RouteCollector $router){
|
||||
App::$collector->console('create-secret-key', [\kernel\console\controllers\SecureController::class, 'actionCreateSecretKey']);
|
||||
App::$collector->console('create-secret-key',
|
||||
[\kernel\console\controllers\SecureController::class, 'actionCreateSecretKey'],
|
||||
additionalInfo: ['description' => 'Генерация секрктного ключа и запись его в .env']
|
||||
);
|
||||
});
|
||||
|
||||
App::$collector->group(["prefix" => "admin"], callback: function (RouteCollector $router){
|
||||
App::$collector->console('init', [\kernel\console\controllers\AdminConsoleController::class, 'actionInit']);
|
||||
App::$collector->console('init',
|
||||
[\kernel\console\controllers\AdminConsoleController::class, 'actionInit'],
|
||||
additionalInfo: ['description' => 'Инициализация админ-панели']
|
||||
);
|
||||
});
|
||||
|
||||
App::$collector->group(["prefix" => "module"], callback: function (RouteCollector $router){
|
||||
App::$collector->console('install', [\kernel\console\controllers\ModuleController::class, 'actionInstallModule']);
|
||||
App::$collector->console('uninstall', [\kernel\console\controllers\ModuleController::class, 'actionUninstallModule']);
|
||||
App::$collector->console('pack', [\kernel\console\controllers\ModuleController::class, 'actionPackModule']);
|
||||
App::$collector->console('update', [\kernel\console\controllers\ModuleController::class, 'actionUpdateModule']);
|
||||
App::$collector->console('install',
|
||||
[\kernel\console\controllers\ModuleController::class, 'actionInstallModule'],
|
||||
additionalInfo: ['description' => 'Установка модуля', 'params' => ['--path' => 'Путь к устанавливаемому модулю']]
|
||||
);
|
||||
App::$collector->console('uninstall',
|
||||
[\kernel\console\controllers\ModuleController::class, 'actionUninstallModule'],
|
||||
additionalInfo: ['description' => 'Удалить модуль', 'params' => ['--path' => 'Путь к удаляемому модулю']]
|
||||
);
|
||||
App::$collector->console('pack',
|
||||
[\kernel\console\controllers\ModuleController::class, 'actionPackModule'],
|
||||
additionalInfo: ['description' => 'Заархивировать модуль', 'params' => ['--path' => 'Путь к модулю, который нужно заархивировать']]
|
||||
);
|
||||
App::$collector->console('update',
|
||||
[\kernel\console\controllers\ModuleController::class, 'actionUpdateModule'],
|
||||
additionalInfo: ['description' => 'Обновить модуль', 'params' => ['--path' => 'Путь к архиву с модулем']]
|
||||
);
|
||||
App::$collector->console('construct',
|
||||
[\kernel\console\controllers\ModuleController::class, 'actionConstructModule'],
|
||||
additionalInfo: ['description' => 'Сгенерировать модуль']
|
||||
);
|
||||
});
|
||||
|
||||
App::$collector->group(["prefix" => "kernel"], callback: function (RouteCollector $router){
|
||||
// App::$collector->console('install', [\kernel\console\controllers\ModuleController::class, 'actionInstallModule']);
|
||||
// App::$collector->console('uninstall', [\kernel\console\controllers\ModuleController::class, 'actionUninstallModule']);
|
||||
App::$collector->console('pack', [\kernel\console\controllers\KernelController::class, 'actionPackKernel']);
|
||||
App::$collector->console('update', [\kernel\console\controllers\KernelController::class, 'actionUpdateKernel']);
|
||||
App::$collector->console('pack',
|
||||
[\kernel\console\controllers\KernelController::class, 'actionPackKernel'],
|
||||
additionalInfo: ['description' => 'Заархивировать ядро', 'params' => ['--path' => 'Путь к ядру']]
|
||||
);
|
||||
App::$collector->console('update',
|
||||
[\kernel\console\controllers\KernelController::class, 'actionUpdateKernel'],
|
||||
additionalInfo: [
|
||||
'description' => 'Обновить модуль',
|
||||
'params' =>
|
||||
[
|
||||
'--path' => 'Путь к архиву ядра',
|
||||
'bootstrap' => 'Обновить bootstrap',
|
||||
'composer' => 'Обновить composer',
|
||||
'env' => 'Обновить .env.example'
|
||||
]
|
||||
]
|
||||
);
|
||||
});
|
||||
|
||||
|
Reference in New Issue
Block a user