Magento2の変更点〜設定ファイルの変更点
この記事は公開から 1年以上が経過しています。現在の最新情報との整合性については弊社では一切の責任を負いかねます。
この内容は現在のMagento2とは異なる開発α版の内容です。
Magento1.xでも理解するのがなかなか大変なもの、それはMagentoの設定ファイルです。
Magentoには
- app/etc/local.xml
- app/etc/config.xml
- app/etc/modules/モジュールXML
- config.xml
- system.xml
- api.xml
- adminhtml.xml
- jstranslator.xml
- レイアウトXML
といったXMLファイルが存在しています。
これらは少しずつタグの定義が異なるうえ、用途を理解していないとエクステンションを開発する際やデザインカスタマイズをする際に混乱してしまいます。
Magento2ではapp/etc/modulesが廃止
Magento2では「app/etc/modules」ディレクトリそのものが廃止されます。
エクステンションの開発を容易にすることが目的ですが、このディレクトリに配置されていたファイルの定義内容は、各エクステンションのconfig.xmlに統合されます。
エクステンション固有のXMLファイルの仕様変更
config.xml
config.xmlの変更点は、「app/etc/modules」以下に定義されていた内容が統合されるだけではありません。
クラスのrewrite方法の定義方法も変わります。
Magento1.xでは、
My_Extension_Block My_Extension_Block_Foo_Bar
というようにblock, model, helperの単位でrewriteを定義していました。
また、クラス名の別名を使用していたためにその定義をしなければなりませんでした。
これがMagento2では以下のように変わります。
- クラスの別名が廃止されるため、blocks, models. helpersタグは廃止
- rewriteは1箇所に統合され、rewritesタグに変更
- rewrite定義は完全なクラス名を記述するように変更
例としてrewriteの記述方法を示します。
My_Extension_Block_Foo_Bar_Head
このように一箇所に集約されたため、見通しが良くなっています。
system.xml
system.xmlは大きな変更を受けています。
まず、配置場所が、
エクステンションディレクトリ/etc/
から
エクステンションディレクトリ/etc/adminhtml/
に変更になっています。
さらにタグの定義も変更されています。
いままでタグとして定義されていたものが、sectionタグやgroup、fieldタグの属性として定義し直され、設定ファイル全体としてはスリムになりました。
反面、属性を記述する手間が増え、どのタグにどの属性を書くのかをよりしっかり把握する必要性が求められるようになっています。
adminhtml.xml→acl.xml & menu.xml
adminhtml.xmlは廃止され、acl.xmlとmenu.xmlの2つの定義ファイルとして分割されました。
この見直しによって、どのファイルになんの内容を書くべきかが明確になり、管理がしやすくなっています。
(ファイルが増えたことによって管理の手間が増えた、という声もあるでしょうが)
次回はレイアウトXMLの変更点とsystem.xml, acl.xml, menu.xmlのタグ定義について詳しく解説します。
- お知らせ (34)
- Magento Open Source (169)
- Adobe Commerce (86)
- Magentoトピックス (349)
- Magentoバージョンアップ (11)
- OroCommerce (1)
- AkeneoPIM (16)
- Shopware (26)
- 世界のプライバシー保護規制 (11)
- OroCRM (14)
- Typo3 (9)
- イベント (27)
- Mage-OS (1)
- エクステンションリリース情報 (75)
- Mautic (1)