Конфигурационный файл - файл содержащий настройки для конкретного места развертывания приложения.
К примеру данные для подключения к базе. Данный файл ни в коем случае нельзя сохранять в git или подобное.
composer require fmihel/php-config
Простейшая структура
app
|--config.php
|--index.php
config.php
<$php
$config=[
'pics'=>'app/pics/',
'base'=>'db',
'pass'=>'xxxx',
'user'=>'mike',
];
index.php
require_once __DIR__.'/vendor/autoload.php';
use fmihel\config\Config;
echo Config::get('pics');// out app/pics
echo Config::get('no-def','default');// out default
echo Config::get('no-def'); // raise Exception
Использование шаблона конфигурации позволяет поддерживать структуру конфигурационного файла в актуальности. Если структура шаблона будет отличаться от конфигурации к config приложение будет остановлено и выданы соотвествующие предупреждения. Шаблон конфигурации можно и нужно хранить в репозиториях и деплоить с приложением.
app
|--config.php
|--config.template.php
|--index.php
config.php
<$php
$config=[
'pics'=>'app/pics/',
'base'=>'db',
'pass'=>'xxxx',
'user'=>'mike',
];
config.template.php
<$php
$configTemplate=[
'pics'=>'string',
'base'=>'string',
'pass'=>'string',
'user'=>'string',
'age'=>'number',
'local'=>'bool'
];
index.php
require_once __DIR__.'/vendor/autoload.php';
use fmihel\config\Config; // после этой строчке
// приложение будет остановлено !!!
// так как структура config отличается от config.template
English version
composer require fmihel/php-config