この内容は現在のMagento2とは異なる開発α版の内容です。

Magento2では多くのXML定義ファイルに変更が行われています。
今回はsystem.xml, acl.xml, menu.xmlについて変更点を説明します。
system.xmlはシステム設定画面。acl.xmlは管理者権限。menu.xmlは管理画面のメニュー構成を定義するファイルです。

system.xmlのタグ定義

Magento1.xでは以下のようにsystem.xmlを使用してシステム設定画面の定義ができました。


    
        
            
            400
        
    
    
        
            
            myext
            text
            1
            1
            1
            1
            
                
                    
                    text
                    1
                    1
                    1
                    1
                    
                        
                            
                            text
                            1
                            1
                            1
                            1
                        
                    
                 
             
        
    

system.xmlはconfig.xmlに比べると使用できるタグが比較的きちんと決まっていて、わかりやすいものでした。
反面、タグの階層が深いことや、少しの定義でもタグをたくさん書かないといけないという問題点がありました。
これがMagento2では整理され、以下のようになります。


    
        
            
        
        
            separator-top                         myext             My_Extension::config_catalog                                                                                                    
   

大きな変更点としては、

  • sections, groups, fieldsタグの廃止
  • メニュー別に任意指定するタグの廃止(fooやbarです)
  • タブやグループ、フィールドに用意されていた子要素タグのほとんど(show_in_xxやsortOrder, frontend_type)がタグからfield, group, sectionタグの属性へ変更
  • module属性に指定するクラス名は、別名ではなく完全な名称で記述(Magento2全般として)

があります。
なお、Magento2からは.xsdファイルが用意され、今までソースコードを見なければわからなかったsystem.xmlのスキーマ定義がきちんと定義されるようになりました。
(ただし、理解するためにはXSDの読み方を知る必要があります)
今まで使っていたエクステンションや自分で開発したエクステンションについては、全て書き直しが必要になります。

acl.xmlのタグ定義

Magento1.xではacl.xmlもしくはconfig.xmlでの権限定義は以下のようになっていました。


    
        
            Allow Everything
        
        
            
                
                    
                        
                            Shipping
                            90
                            
                                
                                    My Extension
                                    0
                                    
                                        
                                            Manage
                                            0
                                        
                                    
                                
                            
                        
                    
                
                
                    
                        
                            
                                
                                    My Extension
                                
                            
                        
                    
                
            
        
    

この定義は管理画面でのアクセス権限を定義しています。
adminタグの配下にある、sales(セールスメニュー)とsystem(システム設定画面)タグはそれぞれのエリアでの権限を決めているわけですが、タグの階層が深いことと、独自タグが頻出するためにわかりにくい構造をしていました。
これがMagento2では以下のように変わります(良い例がなかったのでMage_Catalogのacl.xmlです)。


    
        
            
                
                    
                        
                    
                
                
                    
                        
                        
                    
                    
                    
                    
                    
                
            
        
    

変更点としては、

  • resourceタグの導入
  • childrenタグの廃止
  • エクステンション独自タグの廃止(resourceタグの属性に変更)
  • titleタグの廃止(resourceタグの属性に変更)
  • sort_orderタグの廃止(resourceタグの属性にsortOrder属性として変更)

というように廃止・変更点が多いですが、resourceタグの導入によって構造が整理され、id属性に権限IDを設定するようになったことで識別しやすくなっています。
ちなみにacl.xmlのXSDは現時点では用意されていません。

menu.xmlのタグ定義

menu.xmlは管理画面のグローバルナビからアクセスできるメニューの構造を定義するXMLです。
Magento1.xでは以下のように定義されていました。


    
        
            Catalog
            30
            
                Mage_Catalog
            
            
                
                    Manage Products
                    adminhtml/catalog_product/
                    0
                
                
                    Manage Categories
                    adminhtml/catalog_category/
                    10
                
                
                    Attributes
                    
                        
                            Manage Attributes
                            adminhtml/catalog_product_attribute/
                        
                        
                            Manage Attribute Sets
                            adminhtml/catalog_product_set/
                        
                    
                    20
                
                
                    URL Rewrite Management
                    adminhtml/urlrewrite/index
                    30
                
            
        
    

これがMagento2では以下のように変わります。


    
        
        
        
        
        
        
        
    

やはりmenu.xmlもタグが大幅に整理され、独自タグがなくなっています。
すべての独自タグはaddタグの属性に改められ、階層が浅くなりました。
反面、1つのタグに記述する内容が増えたため、横長の構造になっています。これはMagento2のXMLファイルに共通する特徴です。