Конфигурация сайта в приложении Symfony - PullRequest
0 голосов
/ 04 ноября 2018

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

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

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

1 Ответ

0 голосов
/ 08 ноября 2018

Похоже, я нашел решение. Вам нужно будет использовать возможность 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 будет выполняться при каждом запросе - не делайте в нем ничего тяжелого, иначе это повлияет на производительность всего приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...