Конфігурація та середовища
Конфігурація ділиться на два рівні. Конфіг бандлів (config/packages/*.yaml) описує, як налаштований фреймворк, і читається під час компіляції контейнера. Змінні середовища (%env(...)%) зберігають те, що відрізняється між серверами, і читаються в runtime.
Magento · значення з адмінки
$enabled = $this->scopeConfig->isSetFlag(
'faq/general/enabled',
ScopeInterface::SCOPE_STORE
);
Symfony · значення з оточення
# .env
FAQ_ENABLED=1
final class FaqMenu
{
public function __construct(
#[Autowire(env: 'bool:FAQ_ENABLED')]
private bool $enabled,
) {}
}
- Порядок файлів:
.env→.env.local→.env.$APP_ENV→.env.$APP_ENV.local. Справжні змінні середовища перемагають усі файли..envкомітять,*.local— ні. - Процесори:
%env(int:X)%,bool:,json:,resolve:,default:fallback_param:X. - Секрети:
bin/console secrets:set ERP_TOKENшифрує значення в репозиторії, ключ розшифрування живе лише на сервері. - Середовища: блок
when@prod:у будь-якому YAML або атрибут#[When(env: 'dev')]на класі. - Prod:
composer dump-env prodзбирає.env.local.php, щоб не парсити файли на кожен запит. - Довідка:
debug:config frameworkпоказує фактичні значення,config:dump-reference doctrine— усі можливі опції.
Налаштувань з адмінки немає
Якщо бізнесу потрібні налаштування, які людина змінює в браузері, це звичайна сутність, таблиця, форма і кеш, які ви пишете самі. Скоупів store/website теж немає: мультимагазин або мультитенантність проєктують окремо.