2025-02-05 15:40:52 +01:00
|
|
|
<?php
|
|
|
|
namespace DatabaseHelper;
|
|
|
|
|
|
|
|
use DatabaseHelper\enums\CharsetTypes;
|
|
|
|
use DatabaseHelper\enums\CollationTypes;
|
2025-02-05 16:57:45 +01:00
|
|
|
use DatabaseHelper\enums\DatabaseEngines;
|
2025-02-05 15:40:52 +01:00
|
|
|
|
|
|
|
class Schema
|
|
|
|
{
|
|
|
|
public string $name = '';
|
|
|
|
|
|
|
|
public array $columns = [];
|
|
|
|
public array $primaryKey = [];
|
|
|
|
public array $foreignKeys = [];
|
|
|
|
|
2025-02-05 16:57:45 +01:00
|
|
|
public DatabaseEngines $engine = DatabaseEngines::INNODB;
|
2025-02-05 15:40:52 +01:00
|
|
|
public CharsetTypes $charset = CharsetTypes::UTF8;
|
|
|
|
public CollationTypes $collation = CollationTypes::UTF8_GENERAL_CI;
|
|
|
|
|
2025-02-05 16:10:30 +01:00
|
|
|
public function __construct(string $name) {
|
|
|
|
$this->name = $name;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function existsColumn(string $col): bool {
|
|
|
|
return isset($this->columns[$col]);
|
|
|
|
}
|
|
|
|
|
|
|
|
public function columnType(string $col) {
|
|
|
|
return $this->columns[$col]['type'];
|
|
|
|
}
|
|
|
|
|
|
|
|
public function primaryKey() {
|
|
|
|
return $this->columns['primary']['name'];
|
2025-02-05 15:40:52 +01:00
|
|
|
}
|
|
|
|
}
|