new
This commit is contained in:
1 parent
7f56380df0
commit
6d544c6f5e
26 files changed
+982
-17
No files matched your search
@@ -0,0 +1,79 @@
|
||||
<?php
|
||||
/**
|
||||
* MVC Model Generator
|
||||
* Nutzung: php create_model.php <TabellenName> <Spalte1,Spalte2,...>
|
||||
*/
|
||||
|
||||
if (php_sapi_name() !== 'cli') {
|
||||
die("Dieses Script muss über die CLI ausgeführt werden.\n");
|
||||
}
|
||||
|
||||
$tableName = $argv[1] ?? null;
|
||||
$columnsInput = $argv[2] ?? null;
|
||||
|
||||
// Interaktive Abfrage, falls Argumente fehlen
|
||||
if (!$tableName) {
|
||||
echo "Tabellenname eingeben (z.B. Benutzer): ";
|
||||
$handle = fopen("php://stdin", "r");
|
||||
$tableName = trim(fgets($handle));
|
||||
fclose($handle);
|
||||
}
|
||||
|
||||
if (!$columnsInput) {
|
||||
echo "Spalten kommagetrennt eingeben (z.B. NAME,EMAIL,ROLLE): ";
|
||||
$handle = fopen("php://stdin", "r");
|
||||
$columnsInput = trim(fgets($handle));
|
||||
fclose($handle);
|
||||
}
|
||||
|
||||
if (!$tableName) die("Fehler: Kein Tabellenname angegeben.\n");
|
||||
|
||||
// Namen formatieren
|
||||
$className = str_replace(' ', '', ucwords(str_replace('_', ' ', strtolower($tableName))));
|
||||
$modelFile = __DIR__ . "/WEBROOT/src/MVC/Model/{$className}.php";
|
||||
|
||||
// Spalten aufbereiten
|
||||
$columns = array_map('trim', explode(',', $columnsInput));
|
||||
$columnList = implode("', '", $columns);
|
||||
|
||||
// Model-Inhalt generieren
|
||||
$content = <<<PHPMODEL
|
||||
<?php
|
||||
|
||||
namespace MVC\Model;
|
||||
|
||||
use MVC\Core\Model;
|
||||
|
||||
/**
|
||||
* Model für die Tabelle '{$tableName}'
|
||||
* Verfügbare Spalten: '{$columnList}'
|
||||
*/
|
||||
class {$className} extends Model {
|
||||
protected static \$table = "{$tableName}";
|
||||
|
||||
// Hier kannst du spezifische Methoden für dieses Model hinzufügen
|
||||
|
||||
/**
|
||||
* Beispiel: Suche nach einer spezifischen Spalte
|
||||
*/
|
||||
public static function getByFirstColumn(\$value) {
|
||||
return self::where("{$columns[0]} = ?", \$value);
|
||||
}
|
||||
}
|
||||
PHPMODEL;
|
||||
|
||||
// Datei schreiben
|
||||
if (!is_dir(dirname($modelFile))) {
|
||||
mkdir(dirname($modelFile), 0755, true);
|
||||
}
|
||||
|
||||
if (!file_exists($modelFile)) {
|
||||
file_put_contents($modelFile, $content);
|
||||
echo "✅ Model erstellt: WEBROOT/src/MVC/Model/{$className}.php\n";
|
||||
echo "--- INFO ---\n";
|
||||
echo "Tabelle: {$tableName}\n";
|
||||
echo "Klasse: MVC\\Model\\{$className}\n";
|
||||
echo "Spalten: " . implode(', ', $columns) . "\n";
|
||||
} else {
|
||||
echo "⚠️ Model {$className}.php existiert bereits.\n";
|
||||
}
|
||||
Reference in new issue
Block a user