Magento2とは

Magento2は、現在のMagento1.xの後継となるバージョンです。
3年ほど前から開発がスタートし(この当時、Magentoはバージョン1.4でした)、当初はMagento1.xのネガティブな面を改修する方向性から始まりました。

Magentoの開発者イベントなどではMagento2の話題が度々取り上げられてきており、これまでのMagentoの開発スタイルとは異なる、Githubを利用した、開発者の声を取り入れるスタイルが採用されています。

Magento2の今

Magento2の開発バージョンはdev-xxという2ケタ数字で表されていて、dev-44以前とdev-45以降で全くと言っていいほど異なるアプリケーションになっています。

dev-44までは、

でお伝えしたように、Magento1.xに比較的近いものでした。

ところがdev-44のリリース後、dev-45がリリースされるまでの間、4ヶ月の空白期間が発生します。 この間、一部の開発者の間では「Magento2は出ないんじゃないか?」などといった憶測が交わされていたのですが、8月中旬になってようやくdev-45がリリースされました。 ここからdev-46までは2ヶ月ほど再び時間をあけながらも、10月以降はほぼ毎週のように新バージョンがリリースされています。
(ちなみに、Magento2は本来2013年夏リリース予定です) 

何がどう変わっているのか

Magento2はMagento1.xとは相当に異なるアプリケーションになっています。
フロントエンドや管理画面(新デザインになっています)はMagento1.xとよく似ていますが、内部構造は異なります。

設定ファイルの細分化

dev-44の時点でもすでにある程度細分化されていたのですが、更に細分化が進んでいます。

例:di.xml

di.xmlはMagento1.xでいうところのrewrite機能を実装しなおした、DI(Dependency Injection)機能の設定データとしてconfig.xmlに定義されていたものです。
dev-44まではconfig.xmlに入っていたのですが、dev-45以降独立し、1つのXMLファイルになりました。しかも、タグの定義まで変わっています。
以下にその例を挙げます。dev-44までは以下のようでした。 


    
        
             Packagename_Modulename_Model_New
        
    

それがdev-45からは以下のようになっています。


    
    
 

全く異なる上、それまで使われてこなかった属性を多用するようになったので、理解するのは今まで以上に大変です。

Mageクラスの廃止

Magento1.xの様々なシーンで利用されている、Mageクラスが廃止されています。そのため、このクラスを使っているコード全てを書きなおす必要があります。

ロケールファイル名の変更

これまでMagentoのロケールファイル名は、エクステンション開発者が自由に決めてきました。
Magento2では、「ロケール名.csv」に統一されたため、移行の際には注意が必要です。

動作環境や技術要素の変更

新しいバージョンになればいろいろ変わるものですが、Magento2では以下のように変わります。

  • PHP5.4必須
  • Namespaceの全面採用

あとはほとんどMagento1.xの環境が使えますが、今PHP5.3で運用しているサイトで、将来的にアップデートをしたい場合にはPHPのバージョン変更が必要になってきます。
開発者の方については、Namespaceに慣れる必要が出てきます。 

終わりに

もちろんこれら以外にもたくさんの修正・変更があります。 また、開発バージョンごとにかなりの変更が加えられています。どんな変更が入るかも予想できません。
しかし幸いなことにMagento2はまだ開発段階です。様々な意見を(英語で、ですが)Githubに上げていくことによって、より使いやすいアプリケーションになるはずです。ご興味のある方はぜひダウンロードして、ご自身の目で確かめてみてください。 そして意見をあげていきましょう。