create view and controller. USAGE php create_module.php NAME
This commit is contained in:
1 parent
b1de4c08f0
commit
f61d0ea8fe
1 file changed
+90
@@ -0,0 +1,90 @@
|
||||
<?php
|
||||
/**
|
||||
* MVC Module Generator for Gemini CLI Project
|
||||
* Nutzung: php create_module.php <name>
|
||||
*/
|
||||
|
||||
if (php_sapi_name() !== 'cli') {
|
||||
die("Dieses Script kann nur über die Kommandozeile ausgeführt werden.\n");
|
||||
}
|
||||
|
||||
$name = $argv[1] ?? null;
|
||||
|
||||
if (!$name) {
|
||||
echo "Bitte gib einen Namen für das Modul an (z.B. mein_projekt): ";
|
||||
$handle = fopen("php://stdin", "r");
|
||||
$name = trim(fgets($handle));
|
||||
fclose($handle);
|
||||
}
|
||||
|
||||
if (!$name) {
|
||||
die("Fehler: Kein Name angegeben.\n");
|
||||
}
|
||||
|
||||
// Namen formatieren
|
||||
$key = strtolower(str_replace(' ', '_', $name));
|
||||
$className = str_replace(' ', '', ucwords(str_replace('_', ' ', $key)));
|
||||
$controllerFile = __DIR__ . "/WEBROOT/src/MVC/Controller/{$className}Controller.php";
|
||||
$viewFile = __DIR__ . "/WEBROOT/src/MVC/View/{$key}.php";
|
||||
|
||||
// 1. Controller erstellen
|
||||
$controllerContent = <<<PHP
|
||||
<?php
|
||||
|
||||
namespace MVC\Controller;
|
||||
|
||||
use MVC\Core\Controller;
|
||||
|
||||
class {$className}Controller extends Controller {
|
||||
public function {$key}() {
|
||||
// Hier kannst du Daten aus der Datenbank laden
|
||||
// \$data = \DatabaseShow("DeineTabelle");
|
||||
|
||||
return \$this->render('{$key}', [
|
||||
'title' => '{$className} Modul',
|
||||
'message' => 'Willkommen in deinem neuen Modul {$className}!'
|
||||
]);
|
||||
}
|
||||
}
|
||||
PHP;
|
||||
|
||||
if (!file_exists($controllerFile)) {
|
||||
file_put_contents($controllerFile, $controllerContent);
|
||||
echo "✅ Controller erstellt: WEBROOT/src/MVC/Controller/{$className}Controller.php\n";
|
||||
} else {
|
||||
echo "⚠️ Controller existiert bereits.\n";
|
||||
}
|
||||
|
||||
// 2. View erstellen
|
||||
$viewContent = <<<HTML
|
||||
<h2><?= htmlspecialchars(\$title) ?></h2>
|
||||
<div class="card">
|
||||
<p><?= htmlspecialchars(\$message) ?></p>
|
||||
<p>Hier kannst du nun dein Projekt aufbauen.</p>
|
||||
</div>
|
||||
|
||||
<style>
|
||||
.card {
|
||||
background: var(--card-bg);
|
||||
padding: 20px;
|
||||
border-radius: 8px;
|
||||
border: 1px solid var(--card-border);
|
||||
}
|
||||
</style>
|
||||
HTML;
|
||||
|
||||
if (!file_exists($viewFile)) {
|
||||
file_put_contents($viewFile, $viewContent);
|
||||
echo "✅ View erstellt: WEBROOT/src/MVC/View/{$key}.php\n";
|
||||
} else {
|
||||
echo "⚠️ View existiert bereits.\n";
|
||||
}
|
||||
|
||||
// 3. Anleitung ausgeben
|
||||
echo "\n--- NÄCHSTE SCHRITTE ---\n";
|
||||
echo "1. Registriere den Controller in WEBROOT/index.php im \$controllers Array:\n";
|
||||
echo " '{$key}' => \\MVC\\Controller\\{$className}Controller::class,\n\n";
|
||||
echo "2. Füge den Service in der Seitenverwaltung (Admin) oder in config.php hinzu:\n";
|
||||
echo " ID: {$key}\n";
|
||||
echo " Name: " . ucfirst($name) . "\n";
|
||||
echo "------------------------\n";
|
||||
Reference in new issue
Block a user