使用子域访问 Web 应用程序的一部分 (Symfony)

Use a subdomain to access a portion of a web application (Symfony)

我正在 Symfony 中构建一个应用程序,可以通过两个不同的部分来识别它。

目前,这两个组件具有以下域结构

理想情况下,将管理界面命名为 admin.example.com 会很好。

我考虑过使用虚拟主机配置创建从 admin.example.comwww.example.com/app 的反向代理,但我觉得这是一种混乱的方法。

我还探索了 Symfony 中 @Route 注释中的 host 选项,但是这也非常混乱,因为我需要定义它(以及许多支持默认和要求选项) 在每个控制器中。


运行 相同应用程序背后的核心原因是我希望应用程序的两半由相同的数据库和相同的 Symfony 实体驱动。我知道我可以构建两个单独的应用程序,这会解决我的问题,但是这会在两个项目之间创建两组单独的实体,并最终可能会出现错误。如果可以的话,我想避免使用单独的应用程序。

提前致谢!

对于这类问题,我想出了一个解决方案。发布我自己的回复,以防有人遇到类似问题并想知道我是如何解决的。


正如我提到的,将有一个管理控制界面和一个前端界面。它们看起来会有很大不同,但是一个将更多地基于应用程序(管理),一个将更多地以信息为中心(前端网站)。

我选择使用两个单独的应用程序。但是,在使用 FOSRestBundle 时,我以简单 API 的形式公开了基本信息,这些信息将被驱动以使用来自应用程序后端组件的信息来驱动快速响应的前端。前端不需要是 Symfony 应用程序,只是可以从 API 呈现内容的东西(生成的服务器端,或者通过 JavaScript 加载的辅助请求 post 页面 -哪个更合适)。

虽然这并不是我最初的设想,但我意识到这是更好的方法,因为随着应用程序的增长,它会使应用程序变得更加臃肿和难以维护。创建一些简单的测试以确保 API 提供的数据与前端所期望的一样,避免在后端开发时出现任何问题也将相当容易。

希望对大家有帮助!