web-dev-qa-db-ja.com

Symfony 2マルチテナンシーアーキテクチャ、サブドメインに基づいてフロントコントローラー/カーネルからロードされたデータ

こんにちは仲間のプログラマー、

(少し背景)大学の学生寮用のSymfony 2アプリケーションを作成しています。大学側のクライアントが詳細を登録してサブドメインが作成されると、特定の大学に属する学生はこのサブドメインを介してオンライン寮サービスにアクセスできます。 、登録される大学がいくつかあり、各大学には独自のサブドメインと、他の大学からアクセスできない関連データ/学生データの個別のセットがあります。

(私はすでに行ったこと)Niceログインページと登録ページを作成し、hostsファイルを編集してサブドメインを作成することもできました(symfonyを使用してこれを行うためのより良い方法はfile_put_contents()を使用しますか?)次に、フェッチするサービスを作成しましたniversityID parameters.ymlから、すべてのテーブルにuniversityID列があるため、この方法で大学固有のデータを取得できます。

サブドメインに基づいてparameters.yml内のniversityIDを動的に更新するすべてのものがロードされる前に実行されるスクリプトを作成する必要がありますか? これのベストプラクティスは何ですか

結論として、私がコミュニティに求めているのは、

1)。フロントコントローラーを使用して大学固有データをロードしようとしています。フロントコントローラーやカーネルを使用して動的データをロード/設定するにはどうすればよいですか?

2)。プラットフォーム(OS)固有でなくても動的にサブドメインを作成する方法

-ありがとう

1
Dheeraj

この問題は、アクセス元のサブドメインに基づいてアプリケーションを再構成することの1つとして見ているようです。

あなたの大学固有のデータが基本的にuserデータであることを考えると、つまり、ユーザーがアプリケーションにサインアップして使用すると変化するので、より良いアプローチはこれらすべてをデータベースに保存し、アプリケーションの起動の一部としてではなく、必要なときにアクセスするためのサービスを作成します。

サブドメインを検査して大学IDを返すシンプルで最小限のサービスを作成します。 (@request_stackをそれに挿入する必要があります( https://stackoverflow.com/a/20502945/8678 を参照)、現在のリクエストのホスト名にアクセスして、ある種のルックアップを実行します。 )

サブドメインを動的に作成する場合-anyサブドメイン(つまり* .yourdomain.tld)と連携するようにウェブサーバーを構成し、アプリケーションを使用することをお勧めしますそれが有効かどうかを判断します。

基本的に、サーバー構成を動的に書き込むことは避けてください。このアプローチでは、アプリケーションのスケーリングとチューニングに関して問題が発生する可能性があります。

2
Jez