Самый простой, надёжный и удобный способ хранить настройки - это пхп файл.
Как правильно было выше замечено, многие форматы не поддерживают никакие типы кроме строк. Кроме того, любая иде сразу подхватит все настройки в автокомплит, без лишних плагинов и плясок с бубном.
Отличие будет только в заведении в гит. Постоянные настройки заводим, зависящие от окружения - нет. Чтобы не потеряться, в последнем случае в гит кладём пустышку, чтобы понимать, какие настройки вообще заполняем
return [
'db' => [
'host' => '127.0.0.1',
'username' => '',
'password' => '',
'dbname' => '',
'port' => 3306,
],
];
И в коде что-то вроде такого
if (!file_exists('config.php'))
{
throw new \Exception('Create config.php based on config.sample.php');
}
$config = require 'config.php';
Если говорить про .env, и не обращать внимание на вышеуказанные недостатки, то у него есть одно достоинство - множество способов задания переменных. В конфиге веб-сервера, в конфиге юзера, вручную, через файл, и.т.д.