この記事はZennに投稿した記事の要約です。詳細は以下のリンクからご覧ください。
詳細記事: もう$request->headers->get()は書かない。Symfony 8.1 #[MapRequestHeader]
結論:$request->headers->get() を書く時代は終わった
TL;DR: HTTPヘッダーを取得するコードが6行→0行になります。
「Accept-Languageヘッダーを取得して...えーと、どう書くんだっけ」
Symfony開発者なら、こんなコードを何度も書いてきたはずです:
public function index(Request $request): Response
{
$acceptLanguage = $request->headers->get('Accept-Language');
$userAgent = $request->headers->get('User-Agent');
$authorization = $request->headers->get('Authorization');
// 以下、処理...
}
Symfony 8.1で、これが劇的にシンプルになります。
public function index(
#[MapRequestHeader] string $acceptLanguage,
#[MapRequestHeader('User-Agent')] string $userAgent,
#[MapRequestHeader] ?string $authorization,
): Response {
// もう$requestを触る必要がない
}
#[MapQueryParameter]や#[MapRequestPayload]の兄弟が、ついにHTTPヘッダーにも登場しました。
前提条件
- PHP 8.4以上
- Symfony 8.1以上
- EC-CUBE 4.3以上(将来的にSymfony 8.x対応時に利用可能)
続きはZennで
この記事では概要のみを紹介しました。詳細な解説やコード例は、Zennの記事をご覧ください。
もう$request->headers->get()は書かない。Symfony 8.1 #[MapRequestHeader]
EC-CUBEのカスタマイズや開発のご相談は、お気軽にお問い合わせください。