{$field} ?? null !== null) { $array[$field] = $this->{$field}; } } return $array; } protected static function QueryModel() { if (true || (self::$query === null && self::class !== static::class)) { self::$query = static::SetQueryModel(); } return self::$query; } public static function GetTableName() { if (static::$table === null) { static::$table = basename(str_replace('\\', '/', get_called_class())) . 's'; } return static::$table; } public static function GetPrimaryKey() { return static::$primaryKey; } public static function Get(int $id) { return self::Query( static::QueryModel()->Get(), [$id]); } protected static function Query(string $sql, array|object $params = []) { return ConnectionManager::Query( $sql, $params, get_called_class()); } protected static function QueryAll(string $sql, array|object $params = []) { return ConnectionManager::QueryAll( $sql, $params, get_called_class()); } abstract public static function SetQueryModel(): IQuery; }