1*4cadd4f8SNickeau<?php 2*4cadd4f8SNickeau 3*4cadd4f8SNickeau 4*4cadd4f8SNickeaunamespace ComboStrap; 5*4cadd4f8SNickeau 6*4cadd4f8SNickeau 7*4cadd4f8SNickeauclass Dictionary 8*4cadd4f8SNickeau{ 9*4cadd4f8SNickeau 10*4cadd4f8SNickeau /** 11*4cadd4f8SNickeau * @throws ExceptionCombo 12*4cadd4f8SNickeau */ 13*4cadd4f8SNickeau public static function getFrom(string $name): array 14*4cadd4f8SNickeau { 15*4cadd4f8SNickeau $path = Site::getComboDictionaryDirectory()->resolve("$name.json"); 16*4cadd4f8SNickeau if (!FileSystems::exists($path)) { 17*4cadd4f8SNickeau throw new ExceptionCombo("The dictionary file ($path) does not exist"); 18*4cadd4f8SNickeau } 19*4cadd4f8SNickeau $jsonContent = FileSystems::getContent($path); 20*4cadd4f8SNickeau try { 21*4cadd4f8SNickeau $dict = Json::createFromString($jsonContent)->toArray(); 22*4cadd4f8SNickeau } catch (ExceptionCombo $e) { 23*4cadd4f8SNickeau throw new ExceptionCombo("The dictionary ($path) is not a valid json. Error: {$e->getMessage()}"); 24*4cadd4f8SNickeau } 25*4cadd4f8SNickeau if ($dict === null) { 26*4cadd4f8SNickeau throw new ExceptionCombo("The returned dictionary of the file ($path) is empty"); 27*4cadd4f8SNickeau } 28*4cadd4f8SNickeau return $dict; 29*4cadd4f8SNickeau } 30*4cadd4f8SNickeau} 31