chore: initial import for test contour with k3s CI
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
<?php
|
||||
|
||||
namespace App\Support;
|
||||
|
||||
/**
|
||||
* Нормализация флага onlineMode из query/form/JSON (0, 1, "true", "false", bool).
|
||||
*/
|
||||
final class OnlineMode
|
||||
{
|
||||
public static function isOnline(mixed $value): bool
|
||||
{
|
||||
if (is_bool($value)) {
|
||||
return $value;
|
||||
}
|
||||
|
||||
if (is_int($value) || is_float($value)) {
|
||||
return (int) $value === 1;
|
||||
}
|
||||
|
||||
if ($value === null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$normalized = strtolower(trim((string) $value));
|
||||
|
||||
if ($normalized === '') {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (in_array($normalized, ['1', 'true', 'yes', 'on'], true)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (in_array($normalized, ['0', 'false', 'no', 'off'], true)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Неизвестное непустое значение — считаем offline, чтобы не ломать очный приём.
|
||||
return false;
|
||||
}
|
||||
|
||||
public static function toInt(mixed $value): int
|
||||
{
|
||||
return self::isOnline($value) ? 1 : 0;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user