sfWebRequest::getHttpHeader()

リクエストのヘッダ情報を取得するメソッドがsfWebRequest::getHttpHeader()です。
公式サイトのAPIなどであまり説明されていないので、調べたことをメモ。

  • 引数$name, $prefix
    • 第1引数の$nameは、ヘッダ情報の名前です。
    • 第2引数の$prefixは、ヘッダ情報の名前につけるプレフィックスです。省略すると「http」になります。
    • 名前はsymfony内部ではすべて大文字に変換(strtoupper)されるので、大文字小文字は気にする必要がなさそうです。
    • 同様に、ハイフン(-)はアンダースコア(_)に変換されます。

例えば、「X-Hoge-Name」というヘッダ情報の場合、PHPでシンプルに取得する場合は、

<?php
$value = $_SERVER['HTTP_X_HOGE_NAME'];

としますが、symfonyでは以下のようにします。

<?php
$value = $request->getHttpHeader('X-Hoge-Name');