Open kiy0taka opened 1 year ago
PSR-7との統合を検証。
昔はこんな感じでつかえた https://medium.com/@Inviqa/an-introduction-to-psr-7-in-symfony-d723c00385b
が、SensioFrameworkExtraBundle: 6.xでサポート終了宣言 https://github.com/sensiolabs/SensioFrameworkExtraBundle/pull/710
fabpotさんいわく、おすすめしないとのこと I've never used it myself and would never recommend anyone to use it anyway, it adds overhead for no benefits
symfonyチームはpsr-7を支持してないようす https://twitter.com/nicolasgrekas/status/1310858332442370048 https://twitter.com/nicolasgrekas/status/1310863527574474752
新しい実装としては以下がある https://github.com/symfony/psr-http-message-bridge/pull/89 https://github.com/symfony/recipes/pull/899
以下のようなコードになります。 https://github.com/EC-CUBE/next-poc/pull/25
アダプタを作成する
アダプタを作成する 引数や例外に以下の依存があるため考慮する必要あり。
コントローラ内で以下のように利用している。直接インスタンスを生成している箇所はない。
$this->json();
アダプタを作成する BinaryFileResponseとは異なり関連する依存はない。
AbstractController::json()ではアダプタを返すようにする。
$this->redirectToRoute('admin_setting_shop_payment');
AbstractController::redirectToRoute()ではアダプタを返すようにする。
アダプタを作成する BinaryFileResponseとは異なり関連する依存はない。 AbstractController::stream()ではアダプタを返すようにする。
アダプタを作成する 単純な継承でよさそう。
EC-CUBEの例外に変換する
以下の例外を投げている箇所はEC-CUBEの例外に変換する
https://github.com/EC-CUBE/next-poc/pull/14
定数の利用のみ。代替の定数を作成。 https://github.com/EC-CUBE/next-poc/blob/main/src/application/Eccube/Controller/Admin/Store/TemplateController.php#L166
https://github.com/EC-CUBE/next-poc/pull/15
Response系はすべてAbstractControllerでアダプターを返すファクトリーメソッドを追加する。 ResponseHeaderBag::DISPOSITION_ATTACHMENT は代替定数の作成ではなくて、AbstractController#attachmentFile(...) のようなファクトリーメソッドが良いかと。
ResponseHeaderBag::DISPOSITION_ATTACHMENT
AbstractController#attachmentFile(...)
PSR-7との統合を検証。PSR-7
昔はこんな感じでつかえた https://medium.com/@Inviqa/an-introduction-to-psr-7-in-symfony-d723c00385b
が、SensioFrameworkExtraBundle: 6.xでサポート終了宣言 https://github.com/sensiolabs/SensioFrameworkExtraBundle/pull/710
fabpotさんいわく、おすすめしないとのこと I've never used it myself and would never recommend anyone to use it anyway, it adds overhead for no benefits
symfonyチームはpsr-7を支持してないようす https://twitter.com/nicolasgrekas/status/1310858332442370048 https://twitter.com/nicolasgrekas/status/1310863527574474752
新しい実装としては以下がある https://github.com/symfony/psr-http-message-bridge/pull/89 https://github.com/symfony/recipes/pull/899
以下のようなコードになります。 https://github.com/EC-CUBE/next-poc/pull/25
Symfony\Component\HttpFoundation\Response
アダプタを作成する
Symfony\Component\HttpFoundation\BinaryFileResponse
アダプタを作成する 引数や例外に以下の依存があるため考慮する必要あり。
Symfony\Component\HttpFoundation\JsonResponse
コントローラ内で以下のように利用している。直接インスタンスを生成している箇所はない。
アダプタを作成する BinaryFileResponseとは異なり関連する依存はない。
AbstractController::json()ではアダプタを返すようにする。
Symfony\Component\HttpFoundation\RedirectResponse
コントローラ内で以下のように利用している。直接インスタンスを生成している箇所はない。
アダプタを作成する BinaryFileResponseとは異なり関連する依存はない。
AbstractController::redirectToRoute()ではアダプタを返すようにする。
Symfony\Component\HttpFoundation\StreamedResponse
アダプタを作成する BinaryFileResponseとは異なり関連する依存はない。 AbstractController::stream()ではアダプタを返すようにする。
Symfony\Component\HttpFoundation\Cookie
アダプタを作成する 単純な継承でよさそう。
Symfony\Component\HttpFoundation\File\Exception\FileException
EC-CUBEの例外に変換する
Symfony\Component\HttpFoundation\File\File
アダプタを作成する
以下の例外を投げている箇所はEC-CUBEの例外に変換する
Symfony\Component\HttpFoundation\File\UploadedFile
アダプタを作成する
以下の例外を投げている箇所はEC-CUBEの例外に変換する
Symfony\Component\HttpFoundation\Request
https://github.com/EC-CUBE/next-poc/pull/14
Symfony\Component\HttpFoundation\RequestStack
https://github.com/EC-CUBE/next-poc/pull/14
Symfony\Component\HttpFoundation\ResponseHeaderBag
定数の利用のみ。代替の定数を作成。 https://github.com/EC-CUBE/next-poc/blob/main/src/application/Eccube/Controller/Admin/Store/TemplateController.php#L166
Symfony\Component\HttpFoundation\Session\Session
https://github.com/EC-CUBE/next-poc/pull/15
Symfony\Component\HttpFoundation\Session\SessionInterface
https://github.com/EC-CUBE/next-poc/pull/15