Ещё один интересный приём – диспетчеризация по имени файла.
В некоторых системах принято иметь не один файл с разными ключами для конфигурации, а разные файлы, относящиеся к разным средам. Например:
configs/
database.development.json
database.production.json
database.test.json
Где-то в исходниках должен быть код, который выбирает какой файл загружать. Ниже код использует диспетчеризацию по ключу:
<?php
$configFileNamesByEnv = [
'development' => 'database.development.json',
'production' => 'database.production.json',
'test' => 'database.test.json'
];
$filename = $configFileNamesByEnv[$env];
$raw = file_get_contents($filename);
$config = json_decode($raw);
Нетрудно заметить, что имея название среды запуска, можно составить подходящее имя файла. Так и сделаем:
<?php
$filename = "database.{$env}.json";
$raw = file_get_contents($filename);
$config = json_decode($raw);
Код стал намного короче и больше не требует изменения при расширении.
Остались вопросы? Задайте их в разделе «Обсуждение»
Вам ответят команда поддержки Хекслета или другие студенты
- Статья «Как учиться и справляться с негативными мыслями»
- Статья «Ловушки обучения»
- Статья «Сложные простые задачи по программированию»
- Вебинар «Как самостоятельно учиться»
Для полного доступа к курсу нужен базовый план
Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.