Конфігурація та середовища

← Конфігурація та середовища

Ashterix

docs(articles): From Magento to Symfony, a requalification guide grouped into sections

uk/articles/magento-to-symfony/core/config.md новий файл +40 −0

Конфігурація та середовища

Конфігурація ділиться на два рівні. Конфіг бандлів (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 теж немає: мультимагазин або мультитенантність проєктують окремо.