move from old repository

This commit is contained in:
Jan-Niclas Loosen
2025-02-12 15:03:39 +01:00
parent b684096b4a
commit 29703314a3
19 changed files with 1097 additions and 0 deletions

40
enums/Charset.php Normal file
View File

@@ -0,0 +1,40 @@
<?php
namespace DatabaseHelper\enums;
enum Charset
{
case UTF8;
case UTF8MB4;
case LATIN1;
case ASCII;
case UTF16;
case UTF32;
case LATIN2;
case LATIN5;
case CP1251;
case CP850;
case TIS620;
case GREEK;
case HEBREW;
case BINARY;
public function toString(): string {
return match ($this) {
self::UTF8 => 'utf8',
self::UTF8MB4 => 'utf8mb4',
self::LATIN1 => 'latin1',
self::ASCII => 'ascii',
self::UTF16 => 'utf16',
self::UTF32 => 'utf32',
self::LATIN2 => 'latin2',
self::LATIN5 => 'latin5',
self::CP1251 => 'cp1251',
self::CP850 => 'cp850',
self::TIS620 => 'tis620',
self::GREEK => 'greek',
self::HEBREW => 'hebrew',
self::BINARY => 'binary',
};
}
}

32
enums/Collation.php Normal file
View File

@@ -0,0 +1,32 @@
<?php
namespace DatabaseHelper\enums;
enum Collation
{
case UTF8_GENERAL_CI;
case UTF8_UNICODE_CI;
case UTF8_SPANISH_CI;
case UTF8MB4_UNICODE_CI;
case UTF8MB4_GENERAL_CI;
case UTF8MB4_UNICODE_520_CI;
case LATIN1_SWEDISH_CI;
case UTF8MB4_BIN;
case UTF8_BIN;
case LATIN1_BIN;
public function toString(): string {
return match ($this) {
self::UTF8_GENERAL_CI => 'utf8_general_ci',
self::UTF8_UNICODE_CI => 'utf8_unicode_ci',
self::UTF8_SPANISH_CI => 'utf8_spanish_ci',
self::UTF8MB4_UNICODE_CI => 'utf8mb4_unicode_ci',
self::UTF8MB4_GENERAL_CI => 'utf8mb4_general_ci',
self::UTF8MB4_UNICODE_520_CI => 'utf8mb4_unicode_520_ci',
self::LATIN1_SWEDISH_CI => 'latin1_swedish_ci',
self::UTF8MB4_BIN => 'utf8mb4_bin',
self::UTF8_BIN => 'utf8_bin',
self::LATIN1_BIN => 'latin1_bin',
};
}
}

15
enums/Engine.php Normal file
View File

@@ -0,0 +1,15 @@
<?php
namespace DatabaseHelper\enums;
enum Engine
{
case INNODB;
case MYISAM;
public function toString(): string {
return match ($this) {
self::INNODB => 'InnoDB',
self::MYISAM => 'MyISAM',
};
}
}

20
enums/Join.php Normal file
View File

@@ -0,0 +1,20 @@
<?php
namespace DatabaseHelper\enums;
enum Join
{
case INNER;
case LEFT;
case RIGHT;
case FULL;
public function toString(): string {
return match ($this) {
self::INNER => 'INNER JOIN',
self::LEFT => 'LEFT JOIN',
self::RIGHT => 'RIGHT JOIN',
self::FULL => 'FULL JOIN',
};
}
}

37
enums/Operator.php Normal file
View File

@@ -0,0 +1,37 @@
<?php
namespace DatabaseHelper\enums;
use InvalidArgumentException;
enum Operator
{
case EQUAL;
case NOT_EQUAL;
case GREATER;
case GREATER_EQUAL;
case LESS;
case LESS_EQUAL;
public static function fromString(string $operator): self {
return match ($operator) {
'=' => self::EQUAL,
'!=' => self::NOT_EQUAL,
'>' => self::GREATER,
'>=' => self::GREATER_EQUAL,
'<' => self::LESS,
'<=' => self::LESS_EQUAL,
default => throw new InvalidArgumentException("Invalid operator: $operator"),
};
}
public function toString(): string {
return match ($this) {
self::EQUAL => '=',
self::NOT_EQUAL => '!=',
self::GREATER => '>',
self::GREATER_EQUAL => '>=',
self::LESS => '<',
self::LESS_EQUAL => '<=',
};
}
}

16
enums/Order.php Normal file
View File

@@ -0,0 +1,16 @@
<?php
namespace DatabaseHelper\enums;
enum Order
{
case ASC;
case DESC;
public function toString(): string {
return match ($this) {
self::ASC => 'ASC',
self::DESC => 'DESC',
};
}
}

21
enums/Propagation.php Normal file
View File

@@ -0,0 +1,21 @@
<?php
namespace DatabaseHelper\enums;
enum Propagation
{
case CASCADE;
case SET_NULL;
case NO_ACTION;
case RESTRICT;
case SET_DEFAULT;
public function toString(): string {
return match ($this) {
self::CASCADE => 'CASCADE',
self::SET_NULL => 'SET NULL',
self::NO_ACTION => 'NO ACTION',
self::RESTRICT => 'RESTRICT',
self::SET_DEFAULT => 'SET DEFAULT',
};
}
}

46
enums/Type.php Normal file
View File

@@ -0,0 +1,46 @@
<?php
namespace DatabaseHelper\enums;
use DateTime;
enum Type
{
case INT;
case FLOAT;
case STRING;
case BOOL;
case ARRAY;
case DATE;
public function valCast(mixed $value): mixed {
return match ($this) {
self::INT => (int) $value,
self::FLOAT => (float) $value,
self::STRING => (string) $value,
self::BOOL => filter_var($value, FILTER_VALIDATE_BOOLEAN),
self::ARRAY => is_array($value) ? $value : (json_decode($value, true) ?? []),
self::DATE => $value instanceof DateTime ? $value : (strtotime($value) ? new DateTime($value) : null),
};
}
public function dbCast(mixed $value): mixed {
return match ($this) {
self::INT => intval($value),
self::FLOAT => floatval($value),
self::STRING => esc_sql($value),
self::BOOL => filter_var($value, FILTER_VALIDATE_BOOLEAN) ? "TRUE" : "FALSE",
self::ARRAY => json_encode($value),
self::DATE => $value instanceof DateTime ? $value->format('Y-m-d H:i:s') : json_encode($value)
};
}
public function toString(): string {
return match ($this) {
self::INT => 'INTEGER',
self::FLOAT => 'FLOAT',
self::STRING => 'VARCHAR(255)',
self::BOOL => 'BOOLEAN',
self::ARRAY => 'JSON',
self::DATE => 'DATETIME',
};
}
}