私はマルチアプリケーションを設計しました。マルチサイト管理者(すなわち、http://root.com/admin)とすべてのサイトアクセス(すなわちhttp://site1.com、http://site2.com..)があります。 (マルチサイト管理者または子サイト)ルーティング処理するにはSymfony2機能テストクライアントはサーバーパラメータSERVER_NAMEを強制的に使用します。
、私はバーチャルホストの設定にUseCanonicalNameの設定:
そうServerName root.com
ServerAlias media.site1.com site1.com media.site2.com, site2.com ...
UseCanonicalName On
、私は$要求 - >サーバー - >(「SERVER_NAME」を得ることを確信しています)は常にroot.comで返され、ルーティングプロセスではルートドメイン(管理目的)、子サイト、および404コンテンツの間で違いが生じます。
実生活ではうまくいっていますが、テストではUseCanonicalNameがvhostでServerNameを指定してSERVER_NAMEを強制しないようです。通常のクロームクライアントから
ダンプ:テストクライアントから
array(34) {
'HTTP_HOST' =>
string(9) string 'site1.com'
...
'HTTP_USER_AGENT' =>
string(105) 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36'
'SERVER_NAME' =>
string(8) 'root.com'
...
}
ダンプ私はテストクライアント上でSERVER_NAMEを強制しようとした
array(16) {
'SERVER_NAME' =>
string(9) "site1.com"
'HTTP_HOST' =>
string(9) "site1.com"
'HTTP_USER_AGENT' =>
string(19) "Symfony2 BrowserKit"
...
}
:
$crawler = $this->client->request('GET', $route, [], [], ['SERVER_NAME' => 'root.com']);
しかし、これは何も変わらない、私はまだSERVER_NAMEの値がHTTP_HOSTと等しく、子サイトFOかBO(SERVER_NAMEとHTTP_HOSTの違いが問題になる)をテストするときはすべてをねじ込む。
ので、Symfony2のBrowserKitはUseCanonicalNameのディレクティブは鈍感であるのはなぜ
- ?
- クライアントクラスのパラメータを使用するにはどうすればよいですか?ビューの厳格なポイントに