Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

services.yaml を基底とするようにロード順序を修正 #3962

Merged
merged 2 commits into from
Nov 20, 2018

Conversation

nanasess
Copy link
Contributor

@nanasess nanasess commented Nov 2, 2018

概要(Overview・Refs Issue)

支払方法が異なる商品を同時にカートに入れられるようにするカスタマイズ例が動作しない問題の対策

packages 以下の yaml よりも services.yaml の方が優先順位が高い状態となっていた

方針(Policy)

services.yaml は以下の順序でロードされるように修正

  1. app/config/eccube/services.yaml
  2. app/config/eccube/packages/<package_name>.yaml
  3. app/config/eccube/packages/<APP_ENV>/<package_name>.yaml
  4. app/config/eccube/services_<APP_ENV>.yaml
  5. app/Plugin//Resource/config/services.yaml

参考

#3959 (comment)

テスト(Test)

TODO

相談(Discussion)

app/config/eccube/packages/<package_name>.yaml で、今まで動いてなかったものが無いか確認が必要

マイナーバージョン互換性保持のための制限事項チェックリスト

  • 既存機能の仕様変更
  • フックポイントの呼び出しタイミングの変更
  • フックポイントのパラメータの削除・データ型の変更
  • twigファイルに渡しているパラメータの削除・データ型の変更
  • Serviceクラスの公開関数の、引数の削除・データ型の変更
  • 入出力ファイル(CSVなど)のフォーマット変更

@okazy okazy added this to the 4.0.1 milestone Nov 5, 2018
@okazy okazy added the bug label Nov 5, 2018
@okazy
Copy link
Contributor

okazy commented Nov 5, 2018

ロード順について補足

  • 後に読み込まれた設定が有効となる(上書きされる)
  • services.yaml でデフォルトの設定をしている
services:
    _defaults:
        autowire: true
        autoconfigure: true
        public: false
  • services.yaml 内の autowire:true で基本的なDIは自動で設定される
  • 後勝ちとなるため、 packages/<package_name>.yaml 等の設定が services.yaml で上書きされてしまう可能性がある状態となっていた
  • 設定の優先度が変わるので、現状の機能に影響がないか確認する必要がある

@chihiro-adachi
Copy link
Contributor

以下2点を確認し、影響範囲を見極めましょう

  • packages/*以下で定義されているものが動作しているか(修正前は定義しても動かないものがあった)
  • services.yamlで定義したものがpackages/*の定義で上書かれるようになるので、こちらも確認が必要

@nanasess
Copy link
Contributor Author

nanasess commented Nov 9, 2018

  • packages/mobile_detect.yaml は何も設定されていないため不要
  • packages/dev/monolog.yaml と services_dev.yaml の設定が重複している(services_dev.yaml の方を削除)

- packages/mobile_detect.yaml は何も設定されていないため削除
- packages/dev/monolog.yaml と services_dev.yaml の設定が重複しているため削除
@chihiro-adachi
Copy link
Contributor

ドキュメントのカスタマイズ例でカート分割〜購入できることを確認しました。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants