Files
cabinet/src/Support/OnlineMode.php
T
2026-05-28 12:09:28 +03:00

47 lines
1.1 KiB
PHP

<?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;
}
}