0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

もう$request->headers->get()は書かない。Symfony 8.1 #[MapRequestHeader]

0
Posted at

この記事は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のカスタマイズや開発のご相談は、お気軽にお問い合わせください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?