public static function createdbFirstModels() { $dbName = DatabaseConfig::DB_NAME; $pdo = new PDO("mysql:host=localhost;dbname={$dbName}", 'root', ''); $tables = array_map(function ($t) { return $t[0]; }, $pdo->query("SHOW TABLES")->fetchAll(PDO::FETCH_NUM)); foreach ($tables as $tableName) { $columns = array_map(function ($c) { return $c['Field']; }, $pdo->query("SHOW COLUMNS FROM {$tableName}")->fetchAll(PDO::FETCH_ASSOC)); $repositoryNameSplitted = explode("_", $tableName); for ($i = 0; $i < count($repositoryNameSplitted); $i++) { $repositoryNameSplitted[$i] = ucfirst($repositoryNameSplitted[$i]); } $repositoryName = implode("", $repositoryNameSplitted); $model = $repositoryName[strlen($repositoryName) - 1] == 's' ? substr($repositoryName, 0, strlen($repositoryName) - 1) : $repositoryName; $repositoryName .= "Repository"; createRepositories($repositoryName, $model, $tableName, $columns); $output = ""; $output .= self::generateClassInfo($model); $output .= self::generateConstants($model, $tableName, $columns); $output .= self::generateFields($model, $tableName, $columns); $output .= self::generateConstructor($model, $tableName, $columns); $output .= self::generateGettersAndSetters($model, $tableName, $columns); $output .= self::generateObjectGeter($columns); $output .= "}"; $modelFile = fopen("Models/" . $model . '.php', 'w'); fwrite($modelFile, $output); $collectionsOutput = create_collection($model); $collectionFile = fopen('Collections/' . $model . 'Collection.php', 'w'); fwrite($collectionFile, $collectionsOutput); } }
}, $pdo->query("SHOW TABLES")->fetchAll(PDO::FETCH_NUM)); var_dump($tables); include 'repositories_create.php'; include "collections_create.php"; foreach ($tables as $tableName) { $columns = array_map(function ($c) { return $c['Field']; }, $pdo->query("SHOW COLUMNS FROM {$tableName}")->fetchAll(PDO::FETCH_ASSOC)); $repositoryNameSplitted = explode("_", $tableName); for ($i = 0; $i < count($repositoryNameSplitted); $i++) { $repositoryNameSplitted[$i] = ucfirst($repositoryNameSplitted[$i]); } $repositoryName = implode("", $repositoryNameSplitted); $model = $repositoryName[strlen($repositoryName) - 1] == 's' ? substr($repositoryName, 0, strlen($repositoryName) - 1) : $repositoryName; $repositoryName .= "Repository"; createRepositories($repositoryName, $model, $tableName, $columns); $output = ""; $output .= generateClassInfo($model); $output .= generateConstants($model, $tableName, $columns); $output .= generateFields($model, $tableName, $columns); $output .= generateConstructor($model, $tableName, $columns); $output .= generateGettersAndSetters($model, $tableName, $columns); $output .= "}"; $modelFile = fopen("Models/" . $model . '.php', 'w'); fwrite($modelFile, $output); $collectionsOutput = create_collection($model); $collectionFile = fopen('Collections/' . $model . 'Collection.php', 'w'); fwrite($collectionFile, $collectionsOutput); } function generateClassInfo($model) {