91 lines
2.5 KiB
PHP
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;
|
|
// use MVC\Model\YourModel; // Importiere dein Model
|
|
|
|
class {$className}Controller extends Controller {
|
|
public function {$key}() {
|
|
// Nutze Models für den Datenbankzugriff
|
|
// \$data = YourModel::all();
|
|
|
|
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 das Modul in WEBROOT/index.php beim Router:\n";
|
|
echo " \$router->add('{$key}', \\MVC\\Controller\\{$className}Controller::class, '{$key}', ['auth']);\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"; |