この内容は現在の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のタグ定義について詳しく解説します。