Skip to main content

Конфигурация (Config)

Определение

Конфигурационные файлы (Config) — это файлы, содержащие конфигурации.

В Darklyy существует три вида (уровня) конфигурации:

  • Базовая конфигурация хранящая в себе основные параметры такие как подключение базы данных или конфигурация кэша, находится корне приложения в папке config
  • Конфигурация приложения, данная конфигурация создана для общих настроек приложения, хранится в папке usr\app\Configs
  • Конфигурация отдельного модуля, служит для хранения настроек отдельно взятого модуля, хранится в папке usr\modules\{module-name}\Configs

Принципы

  • Если файлы конфигурации модулей являются слишком общими, то их можно поместить на уровень приложения.
  • Модули могут иметь столько конфигурационных файлов, сколько им нужно.

Правила

  • Файлы конфигурации Framework (предоставленные Darklyy) находятся в каталоге конфигурации по умолчанию в корне проекта.
  • Вам НЕ СЛЕДУЕТ добавлять какие-либо файлы конфигурации в корневой каталог config.
  • Конфигурационный файл модуля ДОЛЖЕН называться следующим образом: camelCase имени модуля + - + имя файла конфигурации, это необходимо чтобы предотвратить конфликты между сторонними пакетами и модулями. Например, файл конфигурации внутри модуля news должен называться так: news-myconfig.php

Структура папок

- usr
- modules
- {module-name}
- Configs
- {module-name}-test.php
- {module-name}-example.php
- ...
- app
- Configs
- app.php
- ...
- config
- app.php
- ...

Пример кода

Пример простого конфигурационного файла

// usr/modules/{module-name}/Configs/{module-name}-myconfig.php
return [

/*
|--------------------------------------------------------------------------
| Пространство имен по умолчанию
|--------------------------------------------------------------------------
*/
'namespace' => 'App',

//Другие параметры конфигурации ниже...

Вы можете получить доступ к значению конфигурации следующим образом:

$value = Config::get('{module-name}-myconfig.namespace');     // returns 'App'
$value = config('{module-name}-myconfig.namespace'); // тоже самое