Symfony 2 多租户架构,数据从前端 controller/kernel 基于子域加载

Symfony 2 Multi tenancy architecture, data loaded form front controller/kernel based on subdomain

各位程序员大家好,

(一些背景知识)我正在为大学生住宿构建一个 Symfony 2 应用程序,当我们来自大学的客户使用他们的详细信息注册时,会创建一个子域,属于特定大学的学生可以访问在线通过此子域的住宿服务,将有几所大学将被注册,每所大学将有自己的子域和单独的一组 related-data/student-data,其他大学无法访问。

(我已经完成的)我设法创建了一个不错的登录和注册页面,并且还设法通过编辑主机文件创建了子域(with file_put_contents() 任何更好的方法使用 symfony 来做到这一点?) 然后我创建了一个服务,从 parameters.yml 中获取 UniversityID,这个我可以获得大学特定数据的方式,因为所有表都有一个 universityID 列。

我是否应该创建一个在加载所有内容之前运行的脚本,该脚本将动态更新 UniversityID inside parameters.yml基于子域? 最佳做法是什么

总而言之,我想从社区得到的是,

1).我正在寻找使用前端控制器加载 大学特定 数据,如何使用前端控制器 and/or 内核

load/set 动态数据

2).如何在不特定于平台 (OS) 的情况下动态创建子域

-谢谢

为了动态地执行此操作,您可以将您的解决方案基于以下教程:http://knpuniversity.com/screencast/question-answer-day/symfony2-dynamic-subdomains

您有一个大学数据集,其中包含大学名称和子域(可能是名称 slug)。

然后你创建一个事件侦听器,它在每次请求时都会解析 URL 并提取子域并获取具有该子域的大学。

如果您使用的是 DoctrineBundle,您可以创建一个过滤器来按当前大学过滤结果。