Magento2の変更点〜設定ファイルの変更点2
この記事は公開から 1年以上が経過しています。現在の最新情報との整合性については弊社では一切の責任を負いかねます。
この内容は現在の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では以下のように定義されていました。
これがMagento2では以下のように変わります。
やはりmenu.xmlもタグが大幅に整理され、独自タグがなくなっています。
すべての独自タグはaddタグの属性に改められ、階層が浅くなりました。
反面、1つのタグに記述する内容が増えたため、横長の構造になっています。これはMagento2のXMLファイルに共通する特徴です。