Viewing file: Version.php (1.8 KB) -rwxr-x--- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
declare(strict_types=1);
/* * The MIT License (MIT) * * Copyright (c) 2014-2021 Spomky-Labs * * This software may be modified and distributed under the terms * of the MIT license. See the LICENSE file for details. */
namespace Webauthn\MetadataService;
use function array_key_exists; use Assert\Assertion; use JsonSerializable; use LogicException; use function Safe\sprintf;
class Version implements JsonSerializable { /** * @var int|null */ private $major;
/** * @var int|null */ private $minor;
public function __construct(?int $major, ?int $minor) { if (null === $major && null === $minor) { throw new LogicException('Invalid data. Must contain at least one item'); } Assertion::greaterOrEqualThan($major, 0, Utils::logicException('Invalid argument "major"')); Assertion::greaterOrEqualThan($minor, 0, Utils::logicException('Invalid argument "minor"'));
$this->major = $major; $this->minor = $minor; }
public function getMajor(): ?int { return $this->major; }
public function getMinor(): ?int { return $this->minor; }
public static function createFromArray(array $data): self { $data = Utils::filterNullValues($data); foreach (['major', 'minor'] as $key) { if (array_key_exists($key, $data)) { Assertion::integer($data[$key], sprintf('Invalid value for key "%s"', $key)); } }
return new self( $data['major'] ?? null, $data['minor'] ?? null ); }
public function jsonSerialize(): array { $data = [ 'major' => $this->major, 'minor' => $this->minor, ];
return Utils::filterNullValues($data); } }
|