简单的Symfony 2多租户应用程序

时间:2011-10-04 12:56:29

标签: php symfony

我需要Symfony2中的多租户帮助。

Rails示例: http://samuel.kadolph.com/2010/12/simple-rails-multi-tenancy/

从Symfony 2开始?

1 个答案:

答案 0 :(得分:0)

您可以使用Symfony 2侦听器系统。请注意,虽然在PHP中这是一个设计问题,并且这些类型的东西不是(据我所知)由您正在使用的框架处理。

我们有一个应用程序实例来运行多个安装(租户),并允许用户在他们有权访问的应用程序之间切换。

定义用户时,会设置其默认安装ID,因此当用户登录系统时,会将其安装到此安装位置。如果用户可以访问它(在DB中的查找表中定义),则用户可以切换到另一个安装。

发送登录请求时,侦听器会检查是否在会话中设置了installId。如果没有,则加载用户并在会话上设置默认的installId。然后通过工厂通过服务容器将安装提供给应用程序。会话上设置的installId用于加载当前安装。服务容器中的其他服务使用此安装实例仅提供与当前安装相关的数据。当用户切换安装时,会在会话中设置新的installId,并将用户重定向到主页。重定向强制新的installId用于加载用户已切换到的备用安装。