xref: /plugin/combo/ComboStrap/Dictionary.php (revision 4cadd4f8c541149bdda95f080e38a6d4e3a640ca)
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