Symfony 2多租户架构,数据从前端控制器/基于子域的内核加载


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

各位程序员好,

(一点背景知识)我正在构建一个Symfony 2大学学生住宿应用程序,当我们的客户从大学方面注册他们的详细信息时,创建了一个子域,属于特定大学的学生可以通过该子域访问在线住宿服务。将有几所大学将被注册,每个大学将有自己的子域和独立的相关数据/学生数据集,不能从其他大学访问。

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

我应该创建一个脚本,运行之前的每一个东西加载,将动态更新UniversityID参数。基于子域的Yml ?这个

的最佳实践是什么

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

1)。我希望使用前端控制器加载大学特定的数据,我如何使用前端控制器和/或内核加载/设置动态数据

2)。如何动态创建子域,而不需要特定于平台(OS)

-谢谢

为了动态地做到这一点,您可以基于以下教程的解决方案:http://knpuniversity.com/screencast/question-answer-day/symfony2-dynamic-subdomains。

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

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

如果你使用的是DoctrineBundle,你可以创建一个Filter来过滤当前大学的结果