モジュールを積極的に開発しており、変更を本番サイトにプッシュする場合、通常、いくつかの構成変更を行う必要があります。これを自動化できたらいいのに…と思いませんか?
2 に答える
それがまだ実際のものかどうかはわかりませんが、システム -> 構成への変更を意味する場合は、データベースのアップグレードを記述する代わりに、そのような config.xml ノードを使用する方がはるかに優れています。
Magneto はcore_config_data
テーブルをグローバルな XML 構造に処理するため、システム構成を変更するために db テーブルを使用せずに XML 構造を変更するだけで済みます。
ここに小さな例があります:
<config>
<stores>
<french>
<design>
<theme>
<default>french</default>
<theme>
</design>
</french>
</stores>
<websites>
<base>
<design>
<theme>
<default>english</default>
<theme>
</design>
</base>
</websites>
</config>
この例では、Magento の 2 つのスコープに対して 1 つの構成フィールドが変更されています。現在のウェブサイトやストアに応じた現在のテーマの定義です。
その<stores />
ため、ノードには特定のストアの構成値が含まれています。各子要素には店舗コードで名前が付けられ、ネストされたビューに構成データが含まれています。<website />
ノードには、特定の Web サイトの構成値が含まれています。各子要素には Web サイト コードで名前が付けられ、ネストされたビューにも構成データが含まれています。
また<default />
、グローバル スコープの構成値に使用できるノードもあります。ただし、特定の値がスコープ用である場合は<stores />
andによってオーバーライドされ ます。<websites />
"System -> Config" で変更を行わずに Magento インストーラーを介してプロジェクトをインストールするだけでよい場合、プロジェクトの展開がはるかに簡単になるため、config.xml を介してのみ構成を変更しています。
モジュールの「sql」ディレクトリで、インストールまたはアップグレード スクリプトの一部として変更を行います。モジュールの「config.xml」ファイルで、一致するすべての変更のバージョン番号を増やし、<config><global><resources><MODULE_setup><setup>
ノードに記入することを忘れないでください。
スクリプトは Magento のコンテキスト内で実行されるため、通常のすべての機能にもアクセスできるため、更新は SQL コマンドの形式である必要はありません。