Docker image / push (push) Canceled after 0s
包含:登录失败锁定、90天密码有效期、30分钟会话超时、 强制改密、登录审计日志、屏幕水印、企业背景图、 备案信息固定底部、favicon、登录页JS修复等全部改动
38 lines
1.3 KiB
PHP
38 lines
1.3 KiB
PHP
<?php
|
|
declare(strict_types=1);
|
|
namespace MRBS\Intl;
|
|
|
|
/**
|
|
* A wrapper for the Locale class, that uses the PHP method if available, otherwise falling
|
|
* back to the emulator.
|
|
*/
|
|
class Locale
|
|
{
|
|
public const LANG_TAG = 'language';
|
|
public const EXTLANG_TAG = 'extlang';
|
|
public const SCRIPT_TAG = 'script';
|
|
public const REGION_TAG = 'region';
|
|
public const VARIANT_TAG = 'variant';
|
|
public const GRANDFATHERED_LANG_TAG = 'grandfathered';
|
|
public const PRIVATE_TAG = 'private';
|
|
public const ACTUAL_LOCALE = 0;
|
|
public const VALID_LOCALE = 1;
|
|
|
|
|
|
public static function __callStatic(string $name, array $arguments)
|
|
{
|
|
// Use the PHP method if it exists, unless it's the acceptFromHttp() method. Until we stop using setlocale(), we
|
|
// can't rely on PHP's acceptFromHttp() to tell us whether the locale is valid for setlocale() and have to use
|
|
// the emulator, which does further checks.
|
|
if (($name !== 'acceptFromHttp') && method_exists('\Locale', $name))
|
|
{
|
|
// Check that the method we're calling also exists in the emulator class, in case the 'intl' extension is not enabled.
|
|
assert(method_exists(__NAMESPACE__ . '\LocaleEmulator', $name), "Call to \Locale::$name which hasn't been emulated.");
|
|
return \Locale::$name(...$arguments);
|
|
}
|
|
|
|
return LocaleEmulator::$name(...$arguments);
|
|
}
|
|
|
|
}
|