accounts/common/config/ConfigLoader.php
ErickSkrauch 53ca5915f7 Структура проекта окончательно загнана в Docker
Дегрейд PHP до 7.0 (всё таки без xdebug немного больно)
Дегрейд Node.js до 5.12 (на 6.5 не собирался фронт)
Упразднён app-console контейнер (он теперь живёт внутри основного php контейнера и рулится силами supervisor)
Упразднён node-dev-server (всё равно он работал плохо)
Фикс бага в ConfigLoader (не загружал config-{env} файлы)
Исправлена ошибка в LangMenu (двойной default экспорт)
Из package.json временно удалён PhantomJS
Обновлён README.md
2016-10-02 01:20:40 +03:00

66 lines
1.9 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
namespace common\config;
use yii\helpers\ArrayHelper;
class ConfigLoader {
/*
* TODO: В PHP 7.1 следует сделать её protected
*/
const ROOT_PATH = __DIR__ . '/../..';
private $application;
public function __construct(string $application) {
$this->application = $application;
}
public function getEnvironment() : string {
return YII_ENV;
}
public function getConfig() : array {
$toMerge = [
require __DIR__ . '/config.php',
];
// Общие окружение-зависимые настройки
$path = __DIR__ . '/config-' . YII_ENV . '.php';
if (file_exists($path)) {
$toMerge[] = require $path;
}
// Общие локальные настройки
$path = __DIR__ . '/config-local.php';
if (file_exists($path)) {
$toMerge[] = require $path;
}
// Настройки конкретного приложения
$path = self::ROOT_PATH . '/' . $this->application . '/config/config.php';
if (file_exists($path)) {
$toMerge[] = require $path;
}
// Настройки конкретного приложения для действующего окружения
$path = self::ROOT_PATH . '/' . $this->application . '/config/config-' . YII_ENV . '.php';
if (file_exists($path)) {
$toMerge[] = require $path;
}
// Локальные настройки конкретного приложения
$path = self::ROOT_PATH . '/' . $this->application . '/config/config-local.php';
if (file_exists($path)) {
$toMerge[] = require $path;
}
return ArrayHelper::merge(...$toMerge);
}
public static function load(string $application) : array {
return (new static($application))->getConfig();
}
}