Magento 2:モジュール開発者はどのように独自の構成ファイルを読むべきか
シナリオ:私はMagento 2モジュールの開発者です。で構成ファイルを作成したいapp/etc。このファイルをエリアごとに「スコープ」にしたい app/etc/my_file.xml app/etc/frontend/my_file.xml app/etc/adminhtml/my_file.xml Magento 1では、A config.xmlを作成して、途中にいるだけです。エリアスコープは、XMLファイル自体で発生しました。ただし、Magento 2のアプローチはこれとはまったく異なります Magento 2では、これらのスコープ設定ファイルを読み取るためにどのクラスファイルを作成する必要がありますか。Magento 2のソースから、これを行う「正しい」方法が何であるかは明確ではありません。コアコードには複数のアプローチがありますが、いずれも@apiメソッドでマークされていません。このため、この一般的なモジュール開発者タスクを進める方法を知ることは困難です。二次的な副作用として、Magentoモジュールの開発者がコア設定ファイルからどのように読むべきかを知ることも難しくなります。 一方で、ファイルシステムリーダーオブジェクトを作成することが「正しい」ことのように思えます。たとえば、Magento import.xmlは次のファイルをロードするようです #File: vendor/magento/module-import-export/Model/Import/Config/Reader.php namespace Magento\ImportExport\Model\Import\Config; class Reader extends \Magento\Framework\Config\Reader\Filesystem { public function __construct( //... $fileName = 'import.xml', //... ) { parent::__construct( $fileResolver, $converter, $schemaLocator, $validationState, $fileName, $idAttributes, $domDocumentClass, $defaultScope ); } //... } 基本Magento\Framework\Config\Reader\Filesystemクラスには、エリアスコープを解決するコードがあるように見えます。 ただし、Magento構成ファイルの一部はこのパターンを避けているようです。これらのファイルのリーダーがあります(event.xmlこの例では) vendor/magento/framework/Event/Config/Reader.php これらのリーダーを使用する「スコープデータ」クラスもあります。 …