libarea/app/Libraries/Configuration.php
Evg a9443a7056 DEV: Рефакторинг
Упрощение поиска (переход на стеммер Snowball на PHP), расширения контроллеров, чтобы вынести проверку и сделать контроллеры тоньше и др.
2022-05-14 18:22:42 +03:00

47 lines
1.3 KiB
PHP

<?php
class Configuration
{
private static $path = HLEB_SEARCH_DBASE_CONFIG_FILE;
private static $cache = [];
public static function get($name, $default = null)
{
$file = false !== strpos($name, '.') ? strstr($name, '.', true) : $name;
$key = ltrim(strstr($name, '.'), '.');
self::$path = realpath(self::$path);
if (!self::$path) {
echo 'Config path does not exist';
exit;
}
if (!is_file(self::$path . '/' . $file . '.php')) {
echo 'The file does not exist:' . $file;
exit;
}
if (!array_key_exists(self::$path . '/' . $file . '.php', self::$cache)) {
$data = include self::$path . '/' . $file . '.php';
if (!is_array($data)) {
echo ('This is not an array: ' . self::$path . '/' . $file . '.php');
}
self::$cache[self::$path . '/' . $file . '.php'] = $data;
}
if ($name === $file) {
return self::$cache[self::$path . '/' . $file . '.php'];
}
if (array_key_exists($key, self::$cache[self::$path . '/' . $file . '.php'])) {
return self::$cache[self::$path . '/' . $file . '.php'][$key];
}
return $default;
}
}