Конфигурация сайта в приложении Symfony

У меня есть приложение в Symfony 3.4, которое обслуживает несколько разных доменов, которые могут иметь определенные поддерживаемые языки. В соответствии с комбинацией домен / язык существует конкретный конфиг, который следует применять ко всем приложениям в разных местах.

У меня вопрос: как правильно применить этот конфиг, который можно использовать в разных сервисах приложений?

«Дух» этого вида конфигурации указывает мне на параметры, которые легко используются в приложении Symfony. Однако вопрос все еще остается — как сделать их динамичными?

0

Решение

Похоже, я нашел решение. Вам нужно будет использовать Возможность Symfony создавать внешние параметры в PHP-файле.

Итак, сначала вам нужно добавить это к вашему config.yml файл:

imports:
- { resource: parameters.yml }
- { resource: security.yml }
- { resource: site.php }

В app/config/site.php у вас будет что-то вроде этого:

<?php

if (substr_compare($_SERVER['HTTP_HOST'], 'mybrand.nl', -strlen('mybrand.nl')) === 0) {
$container->setParameter('site.brand', 'mybrand');
$container->setParameter('site.language', 'nl');
}

И тогда где-то в вашем приложении вы можете использовать определенный параметр $this->getParameter('site.brand') или в конфигурации услуг %site.brand%,

Помните, что у вас не будет всех полезных сервисов Symfony и тому подобного в этом PHP-файле — только пустые внутренние компоненты PHP, глобальные переменные и так далее. Также имейте в виду, что site.php будет выполняться при каждом запросе — не делайте в нем ничего тяжелого, иначе это повлияет на производительность всего вашего приложения.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector