EC-CUBE1系・2系・3系・4系の違い

2K、3K って何？？
どれを選んだらいいの？？
という声をよく聞くので、まとめてみます。

## EC-CUBE 0.9.x

2006年9月1日にリリースされたβバージョン。
PHP4系に対応。
リリース当初は、 FreeBSD, PostgreSQL のみに対応。
0.9.3 で MySQL 4.1 に対応。
0.9.6 で Windows, Linux に対応。
文字エンコーディングは EUC-JP だった。
この頃から改修され続け、現在も第一線で稼働し続けている伝説的なサイトもある模様。

## EC-CUBE 1系

2007年2月14日にリリースされた正式リリースバージョン。
PHP4.x, 5.0.xに対応。
1.3.0 で、モバイル(ガラケー)対応。
1.4.0 あたりで、モジュール配信に対応。
当時は、CVS でバージョン管理され、情報は pukiwiki にまとめられていた。
HTML は、もちろんテーブルレイアウト。
最終バージョンは 1.4.5

### 1.3.4コミュニティ版

開発コミュニティからの要望を集約したバージョン。
UTF-8 対応、 Subversion でのバージョン管理、 [Trac](http://svn.ec-cube.net/open_trac/) での課題管理が始まる。

## EC-CUBE 2系

大きく分けて、 2.4以前、2.4系、2.11系、2.12系、2.13系、2.17系に分けられる。
2.4系〜2.13系は、ミドルバージョンが変わると、データベースも含め、大きく構成が変更されるため、バージョンアップの難易度が高い。

### 2.0.x

2007年12月4日に正式版リリース。

当初、 1.5 として開発されていたが、[プログラムのクラス構成や、ディレクトリ構成が大きく変更された](http://svn.ec-cube.net/open_trac/wiki/カスタマイズと移行の手引（v2.0）) ため、2.0 となる。

UTF-8 対応、複数カテゴリ、 CSSレイアウトへの対応など。
[EC-CUBEオーナーズストア](https://www.ec-cube.net/owners/)がオープンし、有償の自動アップデートサービス(現在は廃止)などもあった。

2系のアーキテクチャは、このバージョンがベースとなっている。
**EC-CUBE2系 ってオレオレフレームワークだから〜** っていう話をよく聞くが、当時は PHP4, 5 と MySQL, PostgreSQL に対応し、1系のデータベースを大きく変更せずに移行可能な良いフレームワークが無かったので、自分たちで作るしかなかった。

### 2.1.x

2008年4月10日にリリース。
商品カテゴリCSVアップロード/ダウンロードの対応、共有SSL対応など。
共有SSL は、非SSL領域とディレクトリ階層が異なる場合は対応していない。

### 2.2.x

2.3.x に向けてのベータ版。
ここだけバージョン番号がイレギュラー...

### 2.3.x

2008年10月1日にリリース。
[変更点はこちら](http://svn.ec-cube.net/open_trac/query?status=closed&milestone=EC-CUBE2.3.0)

### 2.4.x

2009年5月19日にリリース。
最終バージョンである 2.4.4 は2010年6月29日にリリースされてた。
バグフィックスを中心にしたバージョンであり、開発人口も増え、安定していたので、多くのサイトに採用された。

### 開発コミュニティ版

[comu-ver2 ブランチ](http://svn.ec-cube.net/open_trac/browser/branches/comu-ver2) で開発が続けられていた。
ナイトリービルドもあり、本家より開発が活発だったため人気があった。
[Seasoft](https://xoops.ec-cube.net/userinfo.php?uid=1036) さんの貢献が偉大。
管理画面が CSS レイアウトになっている(pinerayさんの貢献)

### 2.11.x

2011年3月23日にリリース。
東日本大震災に負けないよう日本を元気にしよう！ということでリリース。
PHP4 にも対応している。

開発コミュニティ版をベースとし、大幅にリファクタリングされた。
複数お届け先への発送に対応。
2.11.2 で、スマートフォン対応。
データベース構造も、 2.4 から大きく変更され、 MySQL でのパフォーマンスも改善した。
特に商品規格のデータ構造がツリー構造になっており、再帰クエリの使用可能なデータベースでは大量のデータでもパフォーマンス向上が期待できる。

詳しくは [gihyo.jp の連載](http://gihyo.jp/design/serial/01/ec_cube2011) を参照。

2.4.4 からのデータ移行モジュール有

### 2.12.x

[2012年5月31日にリリース](https://www.ec-cube.net/news/detail.php?news_id=176)
プラグイン機能を目玉としたバージョン。
2.11.x の商品規格データ構造が複雑すぎるということで、 2.4系に近いかたちに変更された。
PHP4 のサポートは無くなり、 PHP5.1.6 以降に対応

2.11.x からのデータ移行モジュール有

### 2.13.x

[2013年9月19日にリリース。](https://www.ec-cube.net/news/detail.php?news_id=218)
2014年4月の[消費税増税に対応した](https://www.ec-cube.net/product/info_2_13.php)バージョン。
PHP5.3.3〜PHP5.6.x に対応。

2.12.x からのデータ移行モジュールは無いが、 [seasoft さんの公開している SQL](http://seasoft.jp1.cx/ec/アップデート/2.13/2.12.6_2.13.0) で、データ変換可能。

3系がリリースされたが、カスタマイズに関する情報や、ノウハウも多く蓄積されており、EC-CUBEの開発経験豊富なベンダーに根強い人気がある。

### 2.17.x

[2.13.5 を PHP7 に対応したバージョン](https://github.com/EC-CUBE/ec-cube2)。
2019年10月29日リリース。

共有レンタルサーバーでもレイテンシ100msを切る驚異的なパフォーマンスを誇る。速いは正義！ 
3系、4系に先行して、一早くPHP7.4に対応。
フレームワークによるサポート期限の縛りが無いため、 **EC-CUBEでは一番長くサポートされるバージョン** となっている。3年以上保守したいサイトにも適している。
(RHEL8 と組み合わせれば2029年5月までのサポート。 [RHEL8 の PHP は AppStreamのサポートサイクル](https://qiita.com/nanasess/items/aad7a31bb70e1d4a6488)に組込まれている)

PHP8にもマイナーバージョンアップで対応。

[2.4系からのデータ移行プラグイン](https://www.ec-cube.net/products/detail.php?product_id=1017)あり

## EC-CUBE 3.0系、 3.1系

[2015年7月1日にリリース](https://www.ec-cube.net/press/detail.php?press_id=192)
Silex + Symfony フレームワークの採用、ソースコードも全面的に書き換えられた。
PHP5.3.9以降の対応

Subversion + Trac から、 github へ SCM を移行した。
開発の主力は次期バージョンに移っており、バグフィックス中心の開発が続けられている。 

積極的に新機能を使いたい人、オレオレフレームワーク嫌な人向けのバージョン。

のぶろぐさんの移行プラグインあり。([会員データ](https://www.ec-cube.net/products/detail.php?product_id=1179)、[商品データ](https://www.ec-cube.net/products/detail.php?product_id=1332)、[受注データ](https://www.ec-cube.net/products/detail.php?product_id=1263))

Symfony 2.7 系を使用している。Symfony プロジェクトとしてのサポート期間は [2019年5月まで](http://symfony.com/doc/current/contributing/community/releases.html#schedule) となっている
また、 [Silex は 2018年6月に開発終了](https://symfony.com/blog/the-end-of-silex)している。

EC-CUBE 公式としては継続してサポート予定。
3.0系は、 3.0.18 が最終バージョン。

## EC-CUBE 4系、4.1系

[2018年10月11日リリース。](https://www.ec-cube.net/press/detail.php?press_id=241) [Silex の開発中止](https://symfony.com/blog/the-end-of-silex)となる関係上、 Silex を切り離して Symfony 3.4 ベースとなっている。
Symfony 3.4 のサポート期間は 2021年11月まで(約4年)となっているため、2021年9月21日に Symfony 4.4 に対応した4.1系をリリース。
PHP8には未対応。
PHP7.4のサポート期限が2022年11月に迫っており、その頃には PHP8 及び Symfony5系に対応するためにメジャーバージョンアップをすると思われる。
メジャーバージョンアップには、多くの工数がかかることが多いため、予め予算組みをしておいた方が良いだろう。

EC-CUBE 3.0.11以降のバージョン3系でも各種キャッシュを設定すれば、4.0と同等のパフォーマンスを出すことが可能。

## EC-CUBE 4.2系

[2022年9月27日リリース](https://github.com/EC-CUBE/ec-cube/releases/tag/4.2.0)
Symfony5系及びPHP8に対応したバージョン。
4.1系との後方互換性は無くなるが、プラグインや Customize ディレクトリのプログラムはマイグレーションツールで変換できる。
インボイス制度に対応。[バグバウンティ](https://www.ec-cube.net/events/release4.2/bugbounty2022.php) を開催し、多くのバグが修正された。

## TODO

- 機能比較表とかも作りたい
- データ構造の比較表とかも作りたい
- バージョンアップ時の互換リストとかも作りたい
   - 顧客データの移行は比較的容易だけど、パスワードの暗号化方法が変わってるから気をつけてねとか