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

时间:2015-06-01 10:43:23

标签: php symfony architecture multi-tenant

Hello其他程序员,

(有点背景)我正在为大学学生宿舍建立一个Symfony 2应用程序,当我们的大学一侧的客户注册他们的详细信息创建一个子域名时,属于特定大学的学生可以访问在线住宿服务通过这个子域,将有几所大学将被注册,每所大学将拥有自己的子域和一组无法从其他大学访问的相关数据/学生数据。

(我已经完成了)我设法创建了一个很好的登录和注册页面,并设法通过编辑hosts文件创建子域(使用file_put_contents()使用symfony更好的方法吗?)然后我创建了一个从parameters.yml获取 UniversityID 的服务,这样我就可以获得大学特定数据,因为所有表都有一个universityID列。

我应该创建一个在加载每个东西之前运行的脚本,它会根据子域动态更新parameters.yml中的 UniversityID 吗?

的最佳做法是什么

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

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

2)。如何在没有平台(OS)特定的情况下动态创建子域

-Thanks

1 个答案:

答案 0 :(得分:1)

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

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

然后创建一个事件监听器,在每个请求上都会解析URL并提取子域并使用该子域获取大学。

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