ÿØÿÛ C
name file | size | edit | permission | action |
---|---|---|---|---|
.editorconfig | 258 KB | August 13 2024 21:03:02 | 0770 | |
.env | 1340 KB | November 09 2024 13:13:00 | 0770 | |
.env.example | 1213 KB | August 13 2024 21:03:02 | 0770 | |
.gitattributes | 186 KB | August 13 2024 21:03:02 | 0770 | |
.htaccess | 466 KB | August 13 2024 21:03:02 | 0770 | |
.well-known | - | July 10 2025 23:46:46 | 0750 | |
11.php | 70548 KB | July 01 2025 20:07:37 | 0644 | |
Modules | - | November 04 2024 11:42:06 | 0755 | |
README.md | 80 KB | August 13 2024 21:03:02 | 0770 | |
admin-link.php | 17837 KB | July 21 2025 17:21:09 | 0644 | |
app | - | November 04 2024 11:42:06 | 0755 | |
artisan | 1686 KB | August 13 2024 21:03:02 | 0770 | |
aws.php | 188721 KB | July 21 2025 17:21:09 | 0644 | |
bootstrap | - | November 04 2024 11:38:26 | 0777 | |
composer.json | 2932 KB | September 19 2024 12:33:02 | 0770 | |
composer.lock | 415525 KB | September 19 2024 12:33:02 | 0770 | |
config | - | July 02 2025 03:17:17 | 0777 | |
database | - | November 04 2024 11:42:06 | 0777 | |
index.php | 13824 KB | July 02 2025 01:57:55 | 0770 | |
ktq.txt | 1 KB | July 02 2025 01:58:01 | 0644 | |
lang | - | November 04 2024 11:38:26 | 0777 | |
main.php | 302 KB | July 05 2025 04:22:24 | 0644 | |
modules_statuses.json | 775 KB | August 26 2024 12:34:26 | 0770 | |
package-lock.json | 72682 KB | November 09 2024 12:47:51 | 0770 | |
package.json | 481 KB | August 13 2024 21:03:02 | 0770 | |
phpunit.xml | 1084 KB | August 13 2024 21:03:02 | 0770 | |
postcss.config.js | 93 KB | August 13 2024 21:03:02 | 0770 | |
public | - | July 12 2025 06:01:05 | 0777 | |
resources | - | November 04 2024 11:42:07 | 0755 | |
robots.txt | 986 KB | July 23 2025 17:21:28 | 0644 | |
routes | - | November 04 2024 11:38:26 | 0777 | |
server.php | 541 KB | August 13 2024 21:03:04 | 0770 | |
ss.php | 17569 KB | July 02 2025 03:06:06 | 0644 | |
storage | - | November 04 2024 11:42:08 | 0755 | |
tailwind.config.js | 541 KB | August 13 2024 21:03:04 | 0770 | |
tests | - | November 04 2024 11:42:08 | 0777 | |
tmp.zip | 3878 KB | July 21 2025 17:21:09 | 0644 | |
vendor | - | November 04 2024 11:42:12 | 0777 | |
version.json | 26 KB | October 15 2024 18:29:32 | 0770 | |
vite-module-loader.js | 1397 KB | August 13 2024 21:03:06 | 0770 | |
vite.config.js | 310 KB | August 13 2024 21:03:06 | 0770 |
*/ abstract class AbstractUid implements \JsonSerializable, \Stringable { /** * The identifier in its canonic representation. */ protected $uid; /** * Whether the passed value is valid for the constructor of the current class. */ abstract public static function isValid(string $uid): bool; /** * Creates an AbstractUid from an identifier represented in any of the supported formats. * * @throws \InvalidArgumentException When the passed value is not valid */ abstract public static function fromString(string $uid): static; /** * @throws \InvalidArgumentException When the passed value is not valid */ public static function fromBinary(string $uid): static { if (16 !== \strlen($uid)) { throw new \InvalidArgumentException('Invalid binary uid provided.'); } return static::fromString($uid); } /** * @throws \InvalidArgumentException When the passed value is not valid */ public static function fromBase58(string $uid): static { if (22 !== \strlen($uid)) { throw new \InvalidArgumentException('Invalid base-58 uid provided.'); } return static::fromString($uid); } /** * @throws \InvalidArgumentException When the passed value is not valid */ public static function fromBase32(string $uid): static { if (26 !== \strlen($uid)) { throw new \InvalidArgumentException('Invalid base-32 uid provided.'); } return static::fromString($uid); } /** * @throws \InvalidArgumentException When the passed value is not valid */ public static function fromRfc4122(string $uid): static { if (36 !== \strlen($uid)) { throw new \InvalidArgumentException('Invalid RFC4122 uid provided.'); } return static::fromString($uid); } /** * Returns the identifier as a raw binary string. */ abstract public function toBinary(): string; /** * Returns the identifier as a base58 case sensitive string. * * @example 2AifFTC3zXgZzK5fPrrprL (len=22) */ public function toBase58(): string { return strtr(sprintf('%022s', BinaryUtil::toBase($this->toBinary(), BinaryUtil::BASE58)), '0', '1'); } /** * Returns the identifier as a base32 case insensitive string. * * @see https://tools.ietf.org/html/rfc4648#section-6 * * @example 09EJ0S614A9FXVG9C5537Q9ZE1 (len=26) */ public function toBase32(): string { $uid = bin2hex($this->toBinary()); $uid = sprintf('%02s%04s%04s%04s%04s%04s%04s', base_convert(substr($uid, 0, 2), 16, 32), base_convert(substr($uid, 2, 5), 16, 32), base_convert(substr($uid, 7, 5), 16, 32), base_convert(substr($uid, 12, 5), 16, 32), base_convert(substr($uid, 17, 5), 16, 32), base_convert(substr($uid, 22, 5), 16, 32), base_convert(substr($uid, 27, 5), 16, 32) ); return strtr($uid, 'abcdefghijklmnopqrstuv', 'ABCDEFGHJKMNPQRSTVWXYZ'); } /** * Returns the identifier as a RFC4122 case insensitive string. * * @see https://tools.ietf.org/html/rfc4122#section-3 * * @example 09748193-048a-4bfb-b825-8528cf74fdc1 (len=36) */ public function toRfc4122(): string { // don't use uuid_unparse(), it's slower $uuid = bin2hex($this->toBinary()); $uuid = substr_replace($uuid, '-', 8, 0); $uuid = substr_replace($uuid, '-', 13, 0); $uuid = substr_replace($uuid, '-', 18, 0); return substr_replace($uuid, '-', 23, 0); } /** * Returns the identifier as a prefixed hexadecimal case insensitive string. * * @example 0x09748193048a4bfbb8258528cf74fdc1 (len=34) */ public function toHex(): string { return '0x'.bin2hex($this->toBinary()); } /** * Returns whether the argument is an AbstractUid and contains the same value as the current instance. */ public function equals(mixed $other): bool { if (!$other instanceof self) { return false; } return $this->uid === $other->uid; } public function compare(self $other): int { return (\strlen($this->uid) - \strlen($other->uid)) ?: ($this->uid <=> $other->uid); } public function __toString(): string { return $this->uid; } public function jsonSerialize(): string { return $this->uid; } }