EC-CUBE / EC-CUBE/ec-cube

[WIP] EC-CUBE 4.4 Roadmap

Open
#6,762 2 comments 1 reaction 1 assignee Claimed by @dotani1111 View on GitHub
document
Dominant language
PHP
Stars
788
Forks
719
Avg merge
4d 4h
Merged PRs (30d)
39

Description

4.4のリリース内容・計画のまとめや目安箱Issueです。

## 基本方針
メジャーバージョンとして以下の方針で開発を行います。
- Symfony 6.4のEOSL(2027年11月)対策およびミドルウェアの最新バージョン対応のためのSymfony 7.4へのバージョンアップを実施予定です。
- AIフレンドリーな機能構築として、AI(Agentic Commerce、AEO)に対応するための機能(情報フィード機能)やMCPサーバ機能、skillsなどを実装予定です。

## 開発スケジュール

2026年8月下旬 →9月下旬にα版リリース、正式版は年内を想定しております。

## 主要な対応内容

- **フレームワーク・ミドルウェア対応**
- Symfony 7.4 対応
- PHP 新バージョン(8.4 / 8.5)対応
- PostgreSQL 新バージョン(18.*)対応

- 機能取り込み・追加
- 開発コミュニティのPull Request対応(バグFIX、脆弱性対応、改善など)
- UX向上および運用業務負荷を軽減する機能拡充(管理画面の一覧表示制御、注文履歴の配送番号表示など)
- AI機能の追加(ACP/UCP対応のサイト・商品フィード、リードオンリーのMCP機能、各種インデックス・定義ファイルの配置)

- **その他**
- 公式プラグイン(14プラグイン)のバージョン追従
- 公式ドキュメントの更新

詳細は以下から確認できます。

※EC-CUBE 4.4 で取り込む予定の改修一覧
https://github.com/EC-CUBE/ec-cube/milestone/54

マイルストーンは現時点の予定で、変更になる可能性があります。

## システム要件

| Middleware | 4.3 | 4.4 | EOL | 備考 |
|-|-|-|-|-|
| Apache | 2.4 | 2.4 | TBD | |
| PHP | 8.1 〜 8.3 | 8.2 〜 8.5 | 8.5: 2029年12月(Security Support) | PHP 8.1 は 2025年12月に EOL のためサポート対象外とする。RHEL: PHP 8.3 は 2029年5月まで/Ubuntu: PHP 8.5 は 2031年4月まで |
| PostgreSQL | 12 〜 16 | 13 〜 18 | v18: 2030年11月14日 | PostgreSQL 12 は 2024年11月 EOL のため対象外 |
| MySQL | 8.0 ~ 8.4 LTS | 8.4 LTS | 8.0: Premier 2025年4月/8.4: Premier 2029年4月 | premierは無償サポート期間、extendedで3年追加の有償サポートがあり |

## フレームワーク・ライブラリ

| FW / ライブラリ | 4.3(Symfony 6.4) | 4.4(Symfony 7.4) | EOL(セキュリティパッチ終了) | 備考 |
|-|-|-|-|-|
| Symfony | 6.4 | 7.4 | 6.4: 2027年11月/7.4: 2029年11月 | PHP 8.2 以上が必須要件 |
| Doctrine ORM | 2.x | 3.x | 2.x: 2027年2月以降/3.x: 未定 | Annotation 廃止、PHP Attribute 必須 |
| Doctrine DBAL | 3.x | 4.x | 3.x: 未定/4.x: 未定 | 旧 Result fetching API 等が削除 |
| Twig | 3.x | 3.x | 3.x: 未定 (Active) | |
| Bootstrap | 5.3 | 5.3 | 5.x: 未定 (Active) | |
| jQuery | 3.7.x | 4.x | 3.x: 致命的なバグ修正のみ/4.x: 未定 (Active) | 余裕があれば削除する可能性あり |

## テスト

| FW | 4.3 | 4.4 | EOL | 備考 |
|-|-|-|-|-|
| Codeception | 5 | 5 | TBD | Playwright への移行を計画中 |
| PHPUnit | 9 | 11 | 9: 2025年2月
11:TBD | |

※その他のミドルウェア・ソフトウェア構成の詳細(追加・変更点)については要件定義にて確定します。

## 互換性についての情報

### 対応方針

**データベースに関する影響**

- PostgreSQL 18.* に対応します。MySQLについては最新バージョンに対応済みのため、新バージョン対応は行いません。
- PostgreSQL 12 は 2024年11月14日に EOL を迎えているため、4.4 でのサポート対象外を予定しています。

**プラグインに関する影響**

- 公式プラグイン(14プラグイン)は EC-CUBE 新バージョンに合わせて更新します。
- コミュニティプラグインの移行支援として、Rector 設定(リポジトリ同梱の `rector.php`)を用意しています。Symfony / Doctrine / PHP のメジャー更新でのご活用が可能です。
- Entity 周辺で型変更 や Listener 移行が入っているため、Entity 拡張・イベント購読を行っているプラグインは修正が必要になります。詳細は後述の Breaking Changes セクションを参照ください。
- 詳しい移行手順は、別途公開する **「EC-CUBE 4.3 → 4.4 アップグレードガイド」** に記載します。

**デザインテンプレートに関する影響**

- 開発コミュニティ PR の体裁・表示修正の取り込みや、Enterprise 機能のフィードバック実装に伴う変更が入る見込みです(詳細は要件定義で確定)。
- jQuery 4.x への更新で、廃止 API(`.bind()` / `.unbind()`など)を使っているテンプレートは修正が必要になる場合があります。お手数ですが、事前のご確認をお願いします。

**テスト品質要求**

- 機能の正確性:単体・結合試験、シナリオ試験等を実施し、リリース後6ヶ月間での不具合「0」を目指す。
- セキュリティの維持:セキュリティチェックツールを用いた試験や負荷試験を実施し、セキュリティホール「0」を目指す。
- 保守容易性の維持:プログラム・デザインソースのリファクタリングを実施。

## Breaking Changes(プラグイン・テーマ開発者向け)

4.4 では主要ライブラリのメジャーバージョンが上がります。プラグインやカスタマイズコードに影響が出る箇所をまとめましたので、開発者の方は事前確認をお願いします。

### Symfony 6.4 → 7.x

- Doctrine Annotation 形式での設定は非推奨。**PHP 8 Attribute** への移行が必要。
- HttpKernel / Form / Validator など多数のコンポーネントで型宣言が厳格化。
- 一部の Deprecated API が削除。

### Doctrine ORM 2.x → 3.x

- Annotation 形式の Mapping は廃止。**PHP Attribute への移行が必要**(コア側は対応済み)。
- Native types 化により、戻り値・引数の型が厳格化。
- `EntityRepository` / `QueryBuilder` の戻り値型変更。
- **EC-CUBE 側の対応として、`Order` / `OrderItem` などの DECIMAL 型プロパティを `?string` に統一**。
- プラグインやカスタマイズで `Order::getTotal()` 等の戻り値を `int` / `float` として扱っているコードは修正が必要。
- 金額計算は浮動小数点演算を避け `bcmath` 関数に置き換え。プラグイン側で金額計算を行っている箇所は確認が必要。
- Result Cache の API は `setResultCacheLifetime()` → `enableResultCache()` に変更。
- `EventSubscriber` 形式の Doctrine リスナは廃止し、`#[AsDoctrineListener]` を用いる形に変更。

### Doctrine DBAL 3.x → 4.x

- 旧 Result fetching API(`fetch()`, `fetchAll()` 等)は削除。
- `Connection` 周りの API が変更。
- `Platform::getName()` は廃止のため、`instanceof` チェックでの判定に変更。

### PHPUnit 9 → 11

- DataProvider のメソッドシグネチャ変更(`static` 必須)。
- Annotation(`@dataProvider` 等)が非推奨となり、 **PHP Attribute(`#[DataProvider]`)** への移行が必須。また、PHPUnit12にて削除予定。
- 一部のアサーション・Mock API の振る舞いが変更。

### jQuery 3.7 → 4.x

- 廃止 API: `.bind()` / `.unbind()` / `.delegate()` / `.undelegate()` / `.size()` / `.parseJSON()` 等。
- `$.ajax` のオプション・コールバックの一部仕様が変更。

### 移行支援

- リポジトリ同梱の `rector.php` を使えば、Symfony / Doctrine / PHP の機械的な書き換えはほぼ自動化できますので、まずはこちらをお試しください。
- 詳しい移行手順とチェックリストは「アップグレードガイド」で別途公開します。

## リリースサポート

- **4.4 リリース後、4.3 系はセキュリティパッチのみの提供**となる予定です。

## AI 機能(4.4 新規)

4.4 では Agentic Commerce / AEO 対応として、以下を新しく追加する予定です。

- **ACP / UCP 対応のサイト・商品フィード**:AI エージェントが商品情報を取得・提示するためのフィード出力機能。
- **リードオンリーの MCP(Model Context Protocol)サーバ機能**:外部 AI から商品・在庫などを参照するためのインターフェース。※書き込み系の操作は対象外とする。
- 各種インデックス・定義ファイルの配置。

参照仕様(ACP / UCP / MCP のどのバージョンに準拠するか等)や認証・認可モデルの詳細は、要件定義が固まり次第追記いたします。

## コミュニティへのお願い

気になる点・ご要望があれば、お気軽にコメントください!

## 参考リンク

- RHEL ライフサイクル: https://access.redhat.com/support/policy/updates/rhel-app-streams-life-cycle
- Ubuntu ライフサイクル: https://documentation.ubuntu.com/release-notes/26.04/summary-for-lts-users/
- PHP サポートバージョン: https://www.php.net/supported-versions.php
- Symfony リリースカレンダー: https://symfony.com/releases
- Doctrine ORM サポートポリシー: https://www.doctrine-project.org/policies/maintenance.html
- PostgreSQL バージョニングポリシー: https://www.postgresql.org/support/versioning/
- MySQL ライフサイクル: https://www.oracle.com/us/support/library/lifetime-support-technology-069183.pdf

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.