Issei.M's Techlog

Web/iOS エンジニアの僕が技術関連のメモ等をつらつらと。主に Symfony について書いています。

[Symfony] サブドメイン別にルーティングを制御する

Symfony 2.2 で正式に追加された機能の様です。
フロントエンドをexample.com、バックエンドをsystem.example.comとしてそれぞれ別のバンドルで運用する場合の設定例をご紹介。

まずはバックエンド用のバンドルを作成します。

$ php app/console generate:bundle --namespace=Acme/BackendBundle --format=annotation

続いて上記コマンドで自動追記されたBackendBundleへのルーティングを修正します。

# app/config/routing.yml

# バックエンド
system:
    resource: "@BackendBundle/Controller/"
    type:     annotation
    prefix:   /
    host:     system.example.com # 追加!

# フロントエンド
homepage:
    resource: "@FrontendBundle/Controller/"
    type:     annotation
    prefix:   /

新しく追加されたhostによってサブドメインのルーティングを制御できるようになりました。これでsystem.example.comはすべてBackendBundleのコントローラにルーティングされます。
とっても簡単!