2011-10-04 13 views

答えて

0

Symfony 2リスナーシステムを使用できます。しかし、PHPではこれは設計上の問題であり、これらのタイプのものは、使用しているフレームワークによって処理されたものではないことに注意してください。

私たちは、複数のインストール(テナント)を実行するアプリケーションのインスタンスを1つ持ち、アクセスできるものを切り替えることができます。

ユーザが定義されると、デフォルトのインストールIDが設定されます。ユーザがシステムにログインすると、このインストールに移行されます。ユーザーは、データベースへのアクセス権がある場合は、別のインストールに切り替えることができます(DBのルックアップ・テーブルで定義されています)。

ログインリクエストが送信されると、リスナーはセッションでinstallIdが設定されているかどうかを確認します。そうでない場合は、ユーザーがロードされ、デフォルトのinstallIdがセッションで設定されます。インストールは、サービスコンテナを介して、工場を経由してアプリケーションに供給されます。セッションで設定されたinstallIdは、現在のインストールをロードするために使用されます。このインストールインスタンスは、現在のインストールに関連するデータのみを提供するために、サービスコンテナ内の他のサービスによって使用されます。ユーザーがインストールを切り替えると、新しいinstallIdがセッションに設定され、ユーザーはホームページにリダイレクトされます。リダイレクトは、新しいinstallIdを使用して、ユーザーが切り替えた代替インストールをロードするよう強制します。

関連する問題