move from old repository
This commit is contained in:
40
enums/Charset.php
Normal file
40
enums/Charset.php
Normal 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
32
enums/Collation.php
Normal 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
15
enums/Engine.php
Normal 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
20
enums/Join.php
Normal 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
37
enums/Operator.php
Normal 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
16
enums/Order.php
Normal 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
21
enums/Propagation.php
Normal 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
46
enums/Type.php
Normal 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',
|
||||
};
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user