Используйте поддомен для доступа к части веб-приложения (Symfony) - PullRequest
0 голосов
/ 04 сентября 2018

Я создаю приложение в Symfony, которое можно идентифицировать двумя отдельными частями.

  • Первая часть, которая обрабатывает переднюю информацию для пользователей
  • Вторым является сердце приложения, которое управляется несколькими CRUD, интерфейсами управления и средствами управления для управления внешним интерфейсом

В настоящее время два компонента располагаются со следующей структурой доменов

  • Интерфейс интерфейса: www.example.com
  • Внутренний интерфейс администратора: www.example.com/app

В идеале было бы неплохо обратиться к интерфейсу администратора как admin.example.com.

Я думал об использовании vhost config для создания обратного прокси от admin.example.com до www.example.com/app, но мне кажется, что это грязный подход.

Я также исследовал опцию host в аннотации @Route в Symfony, однако это также очень грязно, так как мне нужно определить это (и несколько опций поддержки по умолчанию и требований) в каждом контроллере.


Основная причина запуска одного и того же приложения заключается в том, что мне бы хотелось, чтобы обе половины приложения управлялись одной и той же базой данных и одинаковыми сущностями Symfony. Я понимаю, что могу создать два отдельных приложения, и это решит мою проблему, однако тогда это создаст два отдельных набора объектов между двумя проектами и, в конечном итоге, приведет к ошибкам в будущем. Я хотел бы избежать использования отдельных приложений, если смогу.

Заранее спасибо!

1 Ответ

0 голосов
/ 09 сентября 2018

Я нашел решение для чего-то такого рода проблемы. Публикация своего собственного ответа на случай, если кто-нибудь столкнется с подобной проблемой и хотел бы узнать, как я справился с этим.


Как я уже упоминал, будет интерфейс управления администратора и интерфейс внешнего интерфейса. Они оба будут выглядеть очень по-разному, но один будет больше ориентирован на приложения (администратор), а другой будет больше ориентирован на информацию (интерфейсный веб-сайт).

Я решил использовать два отдельных приложения. Однако, используя FOSRestBundle, я раскрываю основную информацию в виде простого API, который будет управлять быстрым и отзывчивым внешним интерфейсом, используя информацию из внутреннего компонента приложения. Внешний интерфейс не обязательно должен быть приложением Symfony, просто чем-то, что может отображать контент из API (либо сгенерированной серверной стороны, либо с помощью вторичной заявки, загружающей страницу через JavaScript - в зависимости от того, что больше подходит).

Хотя поначалу это не совсем то, что я изначально предполагал, я понимаю, что это лучший подход, поскольку это сделало бы приложение намного более раздутым и сложным в обслуживании с течением времени по мере роста приложения. Также будет довольно легко создать ряд простых тестов, чтобы убедиться, что данные, предоставляемые API, соответствуют ожиданиям внешнего интерфейса, чтобы избежать каких-либо проблем при разработке внутреннего интерфейса.

Надеюсь, это кому-нибудь поможет!

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