2011-10-04 36 views

回答

0

您可以使用Symfony 2偵聽器系統。請注意,儘管在PHP中這是一個設計問題,並且這些類型的東西不是(根據我的知識)由您正在使用的框架處理。

我們有一個應用程序的實例來運行多個安裝(租戶),並允許用戶在他們有權訪問的應用程序之間切換。

當用戶被定義時,他們的默認安裝ID被設置,所以當用戶登錄到系統時,他們需要這個安裝。用戶可以切換到另一個安裝,如果他們有權訪問它(在DB中的查找表中定義)。

當發送登錄請求時,監聽器檢查是否在會話上設置了installId。如果沒有,則加載用戶並在會話上設置缺省的installId。然後通過服務容器通過工廠將安裝提供給應用程序。會話中設置的installId用於加載當前安裝。此服務容器中的其他服務使用此安裝實例僅提供與當前安裝相關的數據。當用戶切換安裝新的installId在會話中設置並且用戶被重定向到主頁。重定向強制新的installId用於加載用戶切換到的備用安裝。