migration rollback at path, additional info routs
This commit is contained in:
parent
967bcc28b5
commit
73a64ff717
132
composer.lock
generated
132
composer.lock
generated
@ -137,16 +137,16 @@
|
||||
},
|
||||
{
|
||||
"name": "craft-group/phroute",
|
||||
"version": "v2.1.2",
|
||||
"version": "v2.1.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/apuc/phroute.git",
|
||||
"reference": "49180faae85e0ba3b0165901ad46e08508c81fac"
|
||||
"reference": "cc04353cd0fb1cc4ff73f273a5718023a767f150"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/apuc/phroute/zipball/49180faae85e0ba3b0165901ad46e08508c81fac",
|
||||
"reference": "49180faae85e0ba3b0165901ad46e08508c81fac",
|
||||
"url": "https://api.github.com/repos/apuc/phroute/zipball/cc04353cd0fb1cc4ff73f273a5718023a767f150",
|
||||
"reference": "cc04353cd0fb1cc4ff73f273a5718023a767f150",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -178,9 +178,9 @@
|
||||
"routing"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/apuc/phroute/tree/v2.1.2"
|
||||
"source": "https://github.com/apuc/phroute/tree/v2.1.3"
|
||||
},
|
||||
"time": "2022-12-17T18:27:33+00:00"
|
||||
"time": "2024-12-13T09:08:04+00:00"
|
||||
},
|
||||
{
|
||||
"name": "doctrine/inflector",
|
||||
@ -725,16 +725,16 @@
|
||||
},
|
||||
{
|
||||
"name": "illuminate/collections",
|
||||
"version": "v11.34.2",
|
||||
"version": "v11.35.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/illuminate/collections.git",
|
||||
"reference": "fd2103ddc121449a7926fc34a9d220e5b88183c1"
|
||||
"reference": "b8be9c0fedfc5be1524b290fed640d4b7d42c813"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/illuminate/collections/zipball/fd2103ddc121449a7926fc34a9d220e5b88183c1",
|
||||
"reference": "fd2103ddc121449a7926fc34a9d220e5b88183c1",
|
||||
"url": "https://api.github.com/repos/illuminate/collections/zipball/b8be9c0fedfc5be1524b290fed640d4b7d42c813",
|
||||
"reference": "b8be9c0fedfc5be1524b290fed640d4b7d42c813",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -754,6 +754,7 @@
|
||||
},
|
||||
"autoload": {
|
||||
"files": [
|
||||
"functions.php",
|
||||
"helpers.php"
|
||||
],
|
||||
"psr-4": {
|
||||
@ -776,11 +777,11 @@
|
||||
"issues": "https://github.com/laravel/framework/issues",
|
||||
"source": "https://github.com/laravel/framework"
|
||||
},
|
||||
"time": "2024-11-27T14:51:56+00:00"
|
||||
"time": "2024-12-10T14:54:28+00:00"
|
||||
},
|
||||
{
|
||||
"name": "illuminate/conditionable",
|
||||
"version": "v11.34.2",
|
||||
"version": "v11.35.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/illuminate/conditionable.git",
|
||||
@ -826,16 +827,16 @@
|
||||
},
|
||||
{
|
||||
"name": "illuminate/container",
|
||||
"version": "v11.34.2",
|
||||
"version": "v11.35.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/illuminate/container.git",
|
||||
"reference": "b057b0bbb38d7c7524df1ca5c38e7318f4c64d26"
|
||||
"reference": "4a777578ce2388384565bf5c8e76881f0da68e54"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/illuminate/container/zipball/b057b0bbb38d7c7524df1ca5c38e7318f4c64d26",
|
||||
"reference": "b057b0bbb38d7c7524df1ca5c38e7318f4c64d26",
|
||||
"url": "https://api.github.com/repos/illuminate/container/zipball/4a777578ce2388384565bf5c8e76881f0da68e54",
|
||||
"reference": "4a777578ce2388384565bf5c8e76881f0da68e54",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -873,11 +874,11 @@
|
||||
"issues": "https://github.com/laravel/framework/issues",
|
||||
"source": "https://github.com/laravel/framework"
|
||||
},
|
||||
"time": "2024-11-21T20:07:31+00:00"
|
||||
"time": "2024-12-08T15:40:56+00:00"
|
||||
},
|
||||
{
|
||||
"name": "illuminate/contracts",
|
||||
"version": "v11.34.2",
|
||||
"version": "v11.35.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/illuminate/contracts.git",
|
||||
@ -1060,7 +1061,7 @@
|
||||
},
|
||||
{
|
||||
"name": "illuminate/macroable",
|
||||
"version": "v11.34.2",
|
||||
"version": "v11.35.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/illuminate/macroable.git",
|
||||
@ -1106,16 +1107,16 @@
|
||||
},
|
||||
{
|
||||
"name": "illuminate/support",
|
||||
"version": "v11.34.2",
|
||||
"version": "v11.35.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/illuminate/support.git",
|
||||
"reference": "2b718a86571baed50fdc5d5748a846c2e58e07eb"
|
||||
"reference": "bc363403d9ed3214754a0501e33c05d2afcfd474"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/illuminate/support/zipball/2b718a86571baed50fdc5d5748a846c2e58e07eb",
|
||||
"reference": "2b718a86571baed50fdc5d5748a846c2e58e07eb",
|
||||
"url": "https://api.github.com/repos/illuminate/support/zipball/bc363403d9ed3214754a0501e33c05d2afcfd474",
|
||||
"reference": "bc363403d9ed3214754a0501e33c05d2afcfd474",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -1138,11 +1139,12 @@
|
||||
"spatie/once": "*"
|
||||
},
|
||||
"suggest": {
|
||||
"illuminate/filesystem": "Required to use the composer class (^11.0).",
|
||||
"illuminate/filesystem": "Required to use the Composer class (^11.0).",
|
||||
"laravel/serializable-closure": "Required to use the once function (^1.3).",
|
||||
"league/commonmark": "Required to use Str::markdown() and Stringable::markdown() (^2.0.2).",
|
||||
"league/uri": "Required to use the Uri class (^7.5.1).",
|
||||
"ramsey/uuid": "Required to use Str::uuid() (^4.7).",
|
||||
"symfony/process": "Required to use the composer class (^7.0).",
|
||||
"symfony/process": "Required to use the Composer class (^7.0).",
|
||||
"symfony/uid": "Required to use Str::ulid() (^7.0).",
|
||||
"symfony/var-dumper": "Required to use the dd function (^7.0).",
|
||||
"vlucas/phpdotenv": "Required to use the Env class and env helper (^5.6.1)."
|
||||
@ -1178,7 +1180,7 @@
|
||||
"issues": "https://github.com/laravel/framework/issues",
|
||||
"source": "https://github.com/laravel/framework"
|
||||
},
|
||||
"time": "2024-11-27T14:58:17+00:00"
|
||||
"time": "2024-12-11T23:23:18+00:00"
|
||||
},
|
||||
{
|
||||
"name": "itguild/eloquent-table",
|
||||
@ -1217,11 +1219,11 @@
|
||||
},
|
||||
{
|
||||
"name": "itguild/forms",
|
||||
"version": "0.1.5",
|
||||
"version": "0.1.6",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://git.itguild.info/ItGuild/forms_bundle.git",
|
||||
"reference": "45e57367d3f9571fde2b82fa2fd8126469ba6db6"
|
||||
"reference": "53e5fadfc1e250a397486565d30f27f3853e0559"
|
||||
},
|
||||
"require": {
|
||||
"itguild/php-cg-select-v2": "^0.1.0",
|
||||
@ -1245,7 +1247,7 @@
|
||||
"email": "apuc06@mail.ru"
|
||||
}
|
||||
],
|
||||
"time": "2024-11-28T10:18:58+00:00"
|
||||
"time": "2024-12-09T20:06:48+00:00"
|
||||
},
|
||||
{
|
||||
"name": "itguild/php-cg-select-v2",
|
||||
@ -2220,16 +2222,16 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/clock",
|
||||
"version": "v7.1.6",
|
||||
"version": "v7.2.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/clock.git",
|
||||
"reference": "97bebc53548684c17ed696bc8af016880f0f098d"
|
||||
"reference": "b81435fbd6648ea425d1ee96a2d8e68f4ceacd24"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/clock/zipball/97bebc53548684c17ed696bc8af016880f0f098d",
|
||||
"reference": "97bebc53548684c17ed696bc8af016880f0f098d",
|
||||
"url": "https://api.github.com/repos/symfony/clock/zipball/b81435fbd6648ea425d1ee96a2d8e68f4ceacd24",
|
||||
"reference": "b81435fbd6648ea425d1ee96a2d8e68f4ceacd24",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -2274,7 +2276,7 @@
|
||||
"time"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/clock/tree/v7.1.6"
|
||||
"source": "https://github.com/symfony/clock/tree/v7.2.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@ -2290,7 +2292,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2024-09-25T14:20:29+00:00"
|
||||
"time": "2024-09-25T14:21:43+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/deprecation-contracts",
|
||||
@ -2361,16 +2363,16 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/finder",
|
||||
"version": "v7.1.6",
|
||||
"version": "v7.2.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/finder.git",
|
||||
"reference": "2cb89664897be33f78c65d3d2845954c8d7a43b8"
|
||||
"reference": "6de263e5868b9a137602dd1e33e4d48bfae99c49"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/finder/zipball/2cb89664897be33f78c65d3d2845954c8d7a43b8",
|
||||
"reference": "2cb89664897be33f78c65d3d2845954c8d7a43b8",
|
||||
"url": "https://api.github.com/repos/symfony/finder/zipball/6de263e5868b9a137602dd1e33e4d48bfae99c49",
|
||||
"reference": "6de263e5868b9a137602dd1e33e4d48bfae99c49",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -2405,7 +2407,7 @@
|
||||
"description": "Finds files and directories via an intuitive fluent interface",
|
||||
"homepage": "https://symfony.com",
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/finder/tree/v7.1.6"
|
||||
"source": "https://github.com/symfony/finder/tree/v7.2.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@ -2421,7 +2423,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2024-10-01T08:31:23+00:00"
|
||||
"time": "2024-10-23T06:56:12+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-ctype",
|
||||
@ -2449,8 +2451,8 @@
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
"url": "https://github.com/symfony/polyfill"
|
||||
"url": "https://github.com/symfony/polyfill",
|
||||
"name": "symfony/polyfill"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
@ -2528,8 +2530,8 @@
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
"url": "https://github.com/symfony/polyfill"
|
||||
"url": "https://github.com/symfony/polyfill",
|
||||
"name": "symfony/polyfill"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
@ -2602,8 +2604,8 @@
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
"url": "https://github.com/symfony/polyfill"
|
||||
"url": "https://github.com/symfony/polyfill",
|
||||
"name": "symfony/polyfill"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
@ -2682,8 +2684,8 @@
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
"url": "https://github.com/symfony/polyfill"
|
||||
"url": "https://github.com/symfony/polyfill",
|
||||
"name": "symfony/polyfill"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
@ -2758,8 +2760,8 @@
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
"url": "https://github.com/symfony/polyfill"
|
||||
"url": "https://github.com/symfony/polyfill",
|
||||
"name": "symfony/polyfill"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
@ -2816,20 +2818,21 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/translation",
|
||||
"version": "v7.1.6",
|
||||
"version": "v7.2.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/translation.git",
|
||||
"reference": "b9f72ab14efdb6b772f85041fa12f820dee8d55f"
|
||||
"reference": "dc89e16b44048ceecc879054e5b7f38326ab6cc5"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/translation/zipball/b9f72ab14efdb6b772f85041fa12f820dee8d55f",
|
||||
"reference": "b9f72ab14efdb6b772f85041fa12f820dee8d55f",
|
||||
"url": "https://api.github.com/repos/symfony/translation/zipball/dc89e16b44048ceecc879054e5b7f38326ab6cc5",
|
||||
"reference": "dc89e16b44048ceecc879054e5b7f38326ab6cc5",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=8.2",
|
||||
"symfony/deprecation-contracts": "^2.5|^3",
|
||||
"symfony/polyfill-mbstring": "~1.0",
|
||||
"symfony/translation-contracts": "^2.5|^3.0"
|
||||
},
|
||||
@ -2890,7 +2893,7 @@
|
||||
"description": "Provides tools to internationalize your application",
|
||||
"homepage": "https://symfony.com",
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/translation/tree/v7.1.6"
|
||||
"source": "https://github.com/symfony/translation/tree/v7.2.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@ -2906,7 +2909,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2024-09-28T12:35:13+00:00"
|
||||
"time": "2024-11-12T20:47:56+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/translation-contracts",
|
||||
@ -3038,16 +3041,16 @@
|
||||
},
|
||||
{
|
||||
"name": "twig/twig",
|
||||
"version": "v3.15.0",
|
||||
"version": "v3.17.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/twigphp/Twig.git",
|
||||
"reference": "2d5b3964cc21d0188633d7ddce732dc8e874db02"
|
||||
"reference": "677ef8da6497a03048192aeeb5aa3018e379ac71"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/twigphp/Twig/zipball/2d5b3964cc21d0188633d7ddce732dc8e874db02",
|
||||
"reference": "2d5b3964cc21d0188633d7ddce732dc8e874db02",
|
||||
"url": "https://api.github.com/repos/twigphp/Twig/zipball/677ef8da6497a03048192aeeb5aa3018e379ac71",
|
||||
"reference": "677ef8da6497a03048192aeeb5aa3018e379ac71",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -3058,6 +3061,7 @@
|
||||
"symfony/polyfill-php81": "^1.29"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpstan/phpstan": "^2.0",
|
||||
"psr/container": "^1.0|^2.0",
|
||||
"symfony/phpunit-bridge": "^5.4.9|^6.4|^7.0"
|
||||
},
|
||||
@ -3101,7 +3105,7 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/twigphp/Twig/issues",
|
||||
"source": "https://github.com/twigphp/Twig/tree/v3.15.0"
|
||||
"source": "https://github.com/twigphp/Twig/tree/v3.17.1"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@ -3113,7 +3117,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2024-11-17T15:59:19+00:00"
|
||||
"time": "2024-12-12T09:58:10+00:00"
|
||||
},
|
||||
{
|
||||
"name": "vlucas/phpdotenv",
|
||||
@ -3286,5 +3290,5 @@
|
||||
"ext-zip": "*"
|
||||
},
|
||||
"platform-dev": [],
|
||||
"plugin-api-version": "2.6.0"
|
||||
"plugin-api-version": "2.3.0"
|
||||
}
|
||||
|
@ -46,8 +46,16 @@ class CgRouteCollector extends RouteCollector
|
||||
//TODO
|
||||
}
|
||||
|
||||
public function console($route, $handler, array $filters = []): void
|
||||
/**
|
||||
* @param $route
|
||||
* @param $handler
|
||||
* @param array $filters
|
||||
* @param array $additionalInfo
|
||||
* @return void
|
||||
*/
|
||||
public function console($route, $handler, array $filters = [], array $additionalInfo = []): void
|
||||
{
|
||||
$this->addRoute(Route::GET, $route, $handler, $filters);
|
||||
$additionalInfo['type'] = "console";
|
||||
$this->addRoute(Route::GET, $route, $handler, $filters, $additionalInfo);
|
||||
}
|
||||
}
|
@ -30,8 +30,7 @@ class TagModule extends Module
|
||||
*/
|
||||
public function init(): void
|
||||
{
|
||||
$this->migrationService->runAtPath("{KERNEL_APP_MODULES}/tag/migrations/tag");
|
||||
$this->migrationService->runAtPath("{KERNEL_APP_MODULES}/tag/migrations/tag_entity");
|
||||
$this->migrationService->runAtPath("{KERNEL_APP_MODULES}/tag/migrations");
|
||||
|
||||
$this->menuService->createItem([
|
||||
"label" => "Тэги",
|
||||
@ -49,11 +48,17 @@ class TagModule extends Module
|
||||
OptionService::createFromParams("entity_tag_list", "{}", "Список тегов");
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws \Exception
|
||||
*/
|
||||
public function deactivate(): void
|
||||
{
|
||||
$this->menuService->removeItemBySlug("tag");
|
||||
$this->menuService->removeItemBySlug("tag_settings");
|
||||
|
||||
OptionService::removeOptionByKey("entity_tag_list");
|
||||
|
||||
$this->migrationService->rollbackAtPath("{KERNEL_APP_MODULES}/tag/migrations");
|
||||
}
|
||||
|
||||
public function formInputs(string $entity, Model $model = null): void
|
||||
|
@ -6,6 +6,7 @@ use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
public string $migration;
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
@ -28,4 +29,5 @@ return new class extends Migration
|
||||
{
|
||||
\kernel\App::$db->schema->dropIfExists('tag');
|
||||
}
|
||||
|
||||
};
|
@ -6,6 +6,8 @@ use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
public string $migration;
|
||||
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
@ -64,6 +64,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()
|
||||
{
|
||||
|
@ -16,10 +16,23 @@ class MainController extends ConsoleController
|
||||
|
||||
public function actionHelp(): void
|
||||
{
|
||||
// Debug::dd(App::$collector->getData());
|
||||
// foreach (App::$collector->getDescriptions() as $description){
|
||||
// $this->out->r($description, "green");
|
||||
// }
|
||||
$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("");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@ -6,6 +6,7 @@ use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
public string $migration;
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
|
@ -1,16 +1,26 @@
|
||||
<?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']);
|
||||
});
|
||||
|
||||
App::$collector->group(["prefix" => "admin-theme"], callback: function (RouteCollector $router){
|
||||
|
@ -12,6 +12,7 @@ use kernel\models\Option;
|
||||
use kernel\modules\module_shop_client\services\ModuleShopClientService;
|
||||
use kernel\modules\user\service\UserService;
|
||||
use kernel\Request;
|
||||
use kernel\services\MigrationService;
|
||||
use kernel\services\ModuleService;
|
||||
|
||||
class ModuleController extends AdminController
|
||||
|
@ -5,17 +5,22 @@ namespace kernel\modules\post;
|
||||
use kernel\helpers\Debug;
|
||||
use kernel\Module;
|
||||
use kernel\modules\menu\service\MenuService;
|
||||
use kernel\services\MigrationService;
|
||||
|
||||
class PostModule extends Module
|
||||
{
|
||||
public MenuService $menuService;
|
||||
public MigrationService $migrationService;
|
||||
public function __construct()
|
||||
{
|
||||
$this->menuService = new MenuService();
|
||||
$this->migrationService = new MigrationService();
|
||||
}
|
||||
|
||||
public function init(): void
|
||||
{
|
||||
$this->migrationService->runAtPath("{KERNEL_MODULES}/post/migrations");
|
||||
|
||||
$this->menuService->createItem([
|
||||
"label" => "Посты",
|
||||
"url" => "/admin/post",
|
||||
@ -26,5 +31,6 @@ class PostModule extends Module
|
||||
public function deactivate(): void
|
||||
{
|
||||
$this->menuService->removeItemBySlug("post");
|
||||
$this->migrationService->rollbackAtPath("{KERNEL_MODULES}/post/migrations");
|
||||
}
|
||||
}
|
@ -6,6 +6,8 @@ use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
public string $migration;
|
||||
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
|
@ -36,4 +36,25 @@ class MigrationService
|
||||
}
|
||||
}
|
||||
|
||||
public function rollbackAtPath(string $path): void
|
||||
{
|
||||
$path = getConst($path);
|
||||
try {
|
||||
$filesystem = new Filesystem();
|
||||
$dmr = new DatabaseMigrationRepository(App::$db->capsule->getDatabaseManager(), 'migration');
|
||||
|
||||
$m = new Migrator($dmr, App::$db->capsule->getDatabaseManager(), $filesystem);
|
||||
|
||||
$migrationFiles = $m->getMigrationFiles($path);
|
||||
foreach ($migrationFiles as $name => $migrationFile){
|
||||
$migrationInstance = $filesystem->getRequire($migrationFile);
|
||||
$migrationInstance->migration = $name;
|
||||
$migrationInstance->down();
|
||||
$dmr->delete($migrationInstance);
|
||||
}
|
||||
} catch (\Exception $e) {
|
||||
throw new \Exception('Не удалось откатить миграции');
|
||||
}
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue
Block a user