templates controllers and module create in terminal

This commit is contained in:
2024-12-10 15:28:34 +03:00
parent fb39da53a6
commit 3c0b78ea56
5 changed files with 193 additions and 0 deletions

View File

@ -529,4 +529,60 @@ class ModuleService
return false;
}
public function createDirs(string $slug): void
{
mkdir(KERNEL_APP_MODULES_DIR . "/$slug");
mkdir(KERNEL_APP_MODULES_DIR . "/$slug/controllers");
mkdir(KERNEL_APP_MODULES_DIR . "/$slug/migrations");
mkdir(KERNEL_APP_MODULES_DIR . "/$slug/models");
mkdir(KERNEL_APP_MODULES_DIR . "/$slug/routs");
mkdir(KERNEL_APP_MODULES_DIR . "/$slug/views");
mkdir(APP_DIR . "/modules/$slug");
mkdir(APP_DIR . "/modules/$slug/controllers");
mkdir(APP_DIR . "/modules/$slug/routs");
}
public function createManifest(array $params): void
{
$name = $params['name'] ?? '';
$author = $params['author'] ?? '';
$slug = $params['slug'] ?? '';
$data = "{\n";
$data .= " \"name\": \"$name\",\n";
$data .= " \"version\": \"0.1\",\n";
$data .= " \"author\": \"$author\",\n";
$data .= " \"slug\": \"$slug\",\n";
$data .= " \"description\": \"$name module\",\n";
$data .= " \"module_class\": \"app\\\\modules\\\\$slug\\\\" . ucfirst($slug) . "Module\",\n";
$data .= " \"module_class_file\": \"{APP}/modules/$slug/" . ucfirst($slug) . "Module.php\",\n";
$data .= " \"routs\": \"routs/$slug.php\",\n";
$data .= " \"migration_path\": \"migrations\"\n";
$data .= "}";
// $data = "{
// \"name\": \"$name\",
// \"version\": \"0.2\",
// \"author\": \"$author\",
// \"slug\": \"$slug\",
// \"description\": \"$name module\",
// \"module_class\": \"app\\\\modules\\\\$slug\\\\" . ucfirst($slug) . "Module\",
// \"module_class_file\": \"{APP}/modules/$slug/" . ucfirst($slug) . "Module.php\",
// \"routs\": \"routs/$slug.php\",
// \"migration_path\": \"migrations\"
//}";
file_put_contents(APP_DIR . "/modules/$slug/manifest.json", $data);
}
public function createControllers(string $slug): void
{
$data = file_get_contents(KERNEL_DIR . '/templates/controllers/kernel_controller_template');
$data = str_replace('{slug}', $slug, $data);
$data = str_replace('{model}', ucfirst($slug), $data);
file_put_contents(KERNEL_APP_MODULES_DIR . '/' . $slug . '/controllers/' . ucfirst($slug) . 'Controller.php', $data);
// file_put_contents(APP_DIR . '/modules/' . $slug . '/controllers/' . ucfirst($slug) . 'Controller.php', $data );
}
}