14cadd4f8SNickeau<?php 24cadd4f8SNickeau 34cadd4f8SNickeau 44cadd4f8SNickeaunamespace ComboStrap; 54cadd4f8SNickeau 64cadd4f8SNickeau 74cadd4f8SNickeauclass Dictionary 84cadd4f8SNickeau{ 94cadd4f8SNickeau 104cadd4f8SNickeau /** 11*04fd306cSNickeau * @throws ExceptionCompile 124cadd4f8SNickeau */ 134cadd4f8SNickeau public static function getFrom(string $name): array 144cadd4f8SNickeau { 15*04fd306cSNickeau $path = DirectoryLayout::getComboDictionaryDirectory()->resolve("$name.json"); 164cadd4f8SNickeau if (!FileSystems::exists($path)) { 17*04fd306cSNickeau throw new ExceptionCompile("The dictionary file ($path) does not exist"); 184cadd4f8SNickeau } 194cadd4f8SNickeau $jsonContent = FileSystems::getContent($path); 204cadd4f8SNickeau try { 214cadd4f8SNickeau $dict = Json::createFromString($jsonContent)->toArray(); 22*04fd306cSNickeau } catch (ExceptionCompile $e) { 23*04fd306cSNickeau throw new ExceptionCompile("The dictionary ($path) is not a valid json. Error: {$e->getMessage()}"); 244cadd4f8SNickeau } 254cadd4f8SNickeau if ($dict === null) { 26*04fd306cSNickeau throw new ExceptionCompile("The returned dictionary of the file ($path) is empty"); 274cadd4f8SNickeau } 284cadd4f8SNickeau return $dict; 294cadd4f8SNickeau } 304cadd4f8SNickeau} 31