コード例 #1
0
 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);
     }
 }
コード例 #2
0
ファイル: index.php プロジェクト: RoYaLBG/SoftUni-ORMLab
}, $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)
{