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

CSVインポートの時に文字列に含まれる改行コードを残すようにする #4942

Merged
merged 2 commits into from
Mar 23, 2021

Conversation

yshirai-joolen
Copy link
Contributor

@yshirai-joolen yshirai-joolen commented Feb 26, 2021

概要(Overview・Refs Issue)

商品CSV登録時に商品説明等のCSVフィールド内改行が消えるのを修正します
#4647

方針(Policy)

csvファイル読み出しのためのSplFileObjectを作る時にDROP_NEW_LINEフラグを付けないようにします。修正箇所は以下の二箇所です。

  • Admin/Product/CsvImportController::splitCsv()で前処理としてアップロードされたcsvファイルを保存し直す時
  • CsvImportServiceのコンストラクタで設定する時

また、以下のテストを修正しています。

  • Eccube\Service\CsvImportService\testReadCsvFileWithTrailingBlankLines

テスト(Test)

空行が含まれるCSVインポートを行うテストに関して、空行を検知して無視する処理を追加しています。

相談(Discussion)

CsvImportServiceはOrderのcsvインポートでも使用していますので、問題がないかを気にしています

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

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

レビュワー確認項目

  • 動作確認
  • コードレビュー
  • E2E/Unit テスト確認(テストの追加・変更が必要かどうか)
  • 互換性が保持されているか
  • セキュリティ上の問題がないか

@okazy okazy added the bug:Low label Mar 1, 2021
@okazy okazy added this to the 4.0.x milestone Mar 1, 2021
@chihiro-adachi chihiro-adachi self-assigned this Mar 2, 2021
@chihiro-adachi
Copy link
Contributor

chihiro-adachi commented Mar 2, 2021

@yshirai-joolen
途中に空行があるCSV(セル内の改行ではなく)はエラーになる、という認識であってますでしょうか?

@chihiro-adachi
Copy link
Contributor

確認しました。
従来からの変更点として、空行がある場合に入力エラーとして扱うようになる仕様変更が入ります。

ただ、
・途中に空行があるCSVはあまり頻繁に発生するものではなさそう
・本修正で改善される内容のほうが有益
かと思いますのでマージしたいと思います

@yshirai-joolen
Copy link
Contributor Author

@chihiro-adachi レスポンス遅れてしまってすみません。ありがとうございました。

@chihiro-adachi chihiro-adachi merged commit 3e492f7 into EC-CUBE:4.0 Mar 23, 2021
@chihiro-adachi
Copy link
Contributor

@yshirai-joolen ありがとうございます、マージしました。

@okazy
Copy link
Contributor

okazy commented Mar 24, 2021

以下の認識です。

修正前

csvの空行

"id","comment"
"1","hoge"

"2","piyo"

⬇️

"id","comment"
"1","hoge"
"2","piyo"

セル内の空行

"id","comment"
"1","hoge"
"2","piyo

piyp"

⬇️

"id","comment"
"1","hoge"
"2","piyo
piyp"

修正後

csvの空行

"id","comment"
"1","hoge"

"2","piyo"

⬇️

エラー

セル内の空行

"id","comment"
"1","hoge"
"2","piyo

piyp"

⬇️

"id","comment"
"1","hoge"
"2","piyo

piyp"

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