Если у вас есть доступ к конфигурации ваших веб-серверов, вы можете объявить имя шаблона как переменную среды, которую Symfony может выбрать и использовать в качестве параметра приложения.
Пример: настройте следующий ENV в Apache для первого (виртуального) хоста:
SetEnv SYMFONY__ERROR_TEMPLATE SomeBundle:error:template1.html.twig
... и для второго:
SetEnv SYMFONY__ERROR_TEMPLATE SomeBundle:error:template2.html.twig
Затем вы можете ввести этот параметр в любой сервис, который вы используете для отображения страницы с ошибкой (скорее всего, прослушиватель исключений):
# Your exception listener
your_exception_listener:
class: SomeClass
arguments:
- @dependency1
- ...
- %error_template%
Затем вы можете просто отобразить шаблон, переданный в качестве параметра, и удалить любую жестко запрограммированную ссылку на шаблон в коде.
Таким образом, запустив один и тот же код на обоих хостах, вы можете отобразить два разных макета страниц ошибок.
ПРИМЕЧАНИЕ. Вам также необходимо помнить об установке переменной среды с тем же именем в вашей оболочке, иначе вы получите исключения, когда приложение запускается в режиме CLI.
Дополнительная информация здесь: http://symfony.com/doc/current/cookbook/configuration/external_parameters.html
person
Andrea Sprega
schedule
19.01.2015