Files
Backend/create_module.php
T

91 lines
2.5 KiB
PHP

<?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";