*/ private $legacyToString = []; /** * @var int[] * @phpstan-var array */ private $stringToLegacy = []; public function __construct(string $file){ $stringToLegacyId = json_decode(file_get_contents($file), true); if(!is_array($stringToLegacyId)){ throw new AssumptionFailedError("Invalid format of ID map"); } foreach($stringToLegacyId as $stringId => $legacyId){ if(!is_string($stringId) or !is_int($legacyId)){ throw new AssumptionFailedError("ID map should have string keys and int values"); } $this->legacyToString[$legacyId] = $stringId; $this->stringToLegacy[$stringId] = $legacyId; } } public function legacyToString(int $legacy) : ?string{ return $this->legacyToString[$legacy] ?? null; } public function stringToLegacy(string $string) : ?int{ return $this->stringToLegacy[$string] ?? null; } /** * @return string[] * @phpstan-return array */ public function getLegacyToStringMap() : array{ return $this->legacyToString; } /** * @return int[] * @phpstan-return array */ public function getStringToLegacyMap() : array{ return $this->stringToLegacy; } }