diff --git a/src/Controller/Component.php b/src/Controller/Component.php index 124d4e5..7bf752d 100644 --- a/src/Controller/Component.php +++ b/src/Controller/Component.php @@ -479,7 +479,9 @@ class Component * @param array $shim */ function addRequireJsPath($name, $path, $shim = null): void { - $this->site->addRequireJsPath($name, $path, $shim); + if ($this->site) { + $this->site->addRequireJsPath($name, $path, $shim); + } } /** diff --git a/src/File.php b/src/File.php index 8ee2eae..5898a83 100644 --- a/src/File.php +++ b/src/File.php @@ -6,14 +6,34 @@ use Exception; class File { /** * @param string $filename - * @return string * @throws Exception */ - static function getContents($filename) { + static function getContents(string $filename): string { $buffer = @file_get_contents($filename); if ($buffer !== false) { return $buffer; } throw new Exception("Unable to read file: " . $filename); } + + + /** + * @param string $filename + * @throws Exception + */ + static function getJson(string $filename, bool|null $associative = null): mixed { + if (!file_exists($filename)) { + return throw new \Exception("File not exist: " . $filename); + } + $json = @file_get_contents($filename); + if ($json === false) { + throw new \Exception("Unable to read file: " . $filename); + } + $file = json_decode($json, $associative); + + if (is_null($file)) { + throw new \Exception("Unable decoding json file: " . $filename); + } + return $file; + } }