Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

201710_EC-CUBE 開発進捗説明会:拡張APIダイジェスト

218 views

Published on

次期バージョンで搭載予定の拡張APIをダイジェストで紹介

Published in: Software
  • Be the first to comment

  • Be the first to like this

201710_EC-CUBE 開発進捗説明会:拡張APIダイジェスト

  1. 1. 拡張APIダイジェスト 2017年10月 開発進捗説明会
  2. 2. 概要 EC-CUBE3.1.0-alpha2以降、拡張性を向上するための多くの修正が取り込 まれました • DependencyInjection • Entity拡張機能 • PurchaseFlow • Entityコンバーター • アノテーション • スキーマ定義の見直し • 設定ファイルの見直し • 物理削除の見直し • 多通貨 • 例外処理の見直し
  3. 3. DependencyInjection これまでServiceProvicderで明示的に定義する必要があった、 DIの定義を自動で行えるようになりました。 大半の定義が不要になり、規約ベースおよび後述の「アノテー ション」で直感的に定義することができます。 設定ミスの起こりやすさ面倒な定義が不要になります。
  4. 4. DependencyInjection #2460 コンテナへの登録/注入の自動化 #2463 コンテナへの登録/注入の自動化の全体適用 #2484 BaseInfo の Inject #2516 コンポーネント自動登録まわりのリファクタリング #2517 [CoC] @QueryExtensionの自動登録 #2518 [CoC]Entityイベントハンドラーの自動登録 #2521 CoCをプラグインにも適用するように変更 #2525 プラグイン設定の規約化 #2555 DI関連のクラス名を変更 巨大なEccubeServiceProvider無くなるよ!
  5. 5. Annotation LaravelやSymfonyでも提供されている「アノテーション」での設定が 可能になりました。 ルーティングやテンプレート、レポジトリやFormTypeの定義を、 ServiceProviderを作成しなくても定義可能です。 ControllerProdvierやServiceProviderで設定していたものが不要になり、 設定と実装の関連がわかりやすくなりました。
  6. 6. Annotation #2427 エンティティ拡張機構をアノテーションで定義するように修正 #2451 FormType の @Inject アノテーションに対応 #2453 Repository の @Component アノテーションに対応 #2457 @Repository アノテーションの実装 #2470 コントローラのアノテーション対応 #2519 @ForwardOnly アノテーション追加 #2532 コントローラの @Component アノテーションを削除 #2535 ForwardOnlyListenerの修正エンティティ拡張機構をアノテーシ ョンで定義するように修正
  7. 7. PurchaseFlow 受注の明細や集計を拡張しやすい設計に。 配送料・値引き・手数料を明細化し、サイトの運用によって異 なる計算ロジックを抽象化することで、柔軟に拡張できるよう になりました。 離島の配送料を個別に適用したり、条件に応じた値引きを追加 するなどが簡単に実装できます。
  8. 8. PurchaseFlow #2424 PurchaceFlowの実装 #2435 PurchaseFlowの修正 #2438 PurchaseFlowのエラーメッセージを正しく表示
  9. 9. 物理削除の見直し 不必要な論理削除を削除し、データの整合性を担保できるように 見直しを行っています。 単純な「削除」ではなく、「有効・無効」などのステータスを精 査しています。 「廃盤になった商品」や、「退会した会員」など、これまで削除 フラグで表現していたデータはビジネス上意味のある概念として 定義し直しています。
  10. 10. 物理削除の見直し #2490 ステータス対応不要の物理削除対応 #2491 Delivery の物理削除対応 #2492 Categoryの物理削除対応 #2496 Memberの物理削除対応 #2499 Paymentの物理削除対応 #2500 ClassCategory の物理削除対応 #2501 Customerの物理削除対応 #2502 Orderの物理削除対応 #2503 Productの物理削除対応 #2506 ProductClassの物理削除対応 #2509 不要なdel_flgの削除 #2510 SoftDeleteFilterの廃止 #2512 SoftDeleteFilter及び論理削除の廃止
  11. 11. スキーマ定義の見直し 受注に関するERを見直しました。 受注 - 明細 - 配送が多対多の関係になります。 OrderDetailとShippimentItemの重複はなくなり解消され、 Order – OrderItem –Shippingの関係となります 値引きや配送料の明細化や、別送・同梱などの概念が扱えるよ うになっています。
  12. 12. スキーマ定義の見直し #2513 Shipping から DeliveryFee と DeliveryTime の外部参照制 約を削除 #2526 dtb / mtb テーブル名等の見直しの実装 #2529 OrderDetail の削除 #2539 ShippingからDeliveryFee, DeliveryTimeを削除
  13. 13. 設定ファイルの見直し 設定ファイルがphpファイルで定義できよるようになり、yaml ファイルのparseにともなうパフォーマンス上のボトルネックが 解消されています。 また、環境変数での上書きができるようになり、PaaS環境での 運用が行いやすくなっています。
  14. 14. 設定ファイルの見直し #2480 message.ja.yml を PHP ファイルに変更 #2494 設定ファイルをyamlからphpファイルに変更 #2533 configの整理/env対応 #2534 Acmeをconfigで変更できるように対応 #2550 .env対応
  15. 15. Entity拡張機能 #2437 Trait でクラス定数(っぽいもの)を追加する仕組み #2531 プラグインのインストールに合わせてEntity拡張機能に よるスキーマ更新を行う対応 #2546 プラグインのライフサイクルとエンティティProxy再生 成/スキーマ更新タイミングの調整
  16. 16. Converter #2515 Entity コンバーターの実装
  17. 17. コードエディタ #2450 Twigの文法チェックを行うバリデータを追加 #2452 コードエディタの実装
  18. 18. 多通貨 #2431 通貨の切り替え機構を追加
  19. 19. 例外処理の見直し #2522 Repositoryの例外処理の見直し
  20. 20. thanks.

×