モジュールがあるときにテーマを使用する理由


9

カスタムモジュール内にファイルを追加しました

Vendor/Theme/view/layout/default.xml

カスタムモジュールのテンプレート/ブロック/レイアウトでサイトのグローバルテンプレートの多くをオーバーライドするために使用しています。またview/web、そのモジュールのディレクトリにある独自のグローバルスタイルをアタッチしています。

代わりにこれにテーマを使用する必要がありますか?あるデザインパターンに対して他のデザインパターンについて良い議論はありますか?例えば。app/design以上を使用してapp/code

回答:


13

好きなことは何でもできますが、それが正しいことであるかどうかは、ここでの質問です。

モジュール

モジュールはウェブショップの機能を追加または変更し、他のMagento 2ウェブショップに転送する必要があります。モジュールには独自のレイアウト、テンプレート、およびスタイルを設定でき、モジュールの機能に必要な場合は、一般的なレイアウト、テンプレート、およびスタイルを変更できます。モジュールは主に単一の機能に焦点を当てているため、(比較的)小さく、Magento 2のWebショップには多くの機能があります。

モジュールは簡単に有効または無効にできるため、追加または変更された特定の機能が表示または非表示になります。サイト全体を変更するべきではありません。

テーマ

テーマはグローバルWebショップのレイアウト、テンプレート、およびスタイルを変更し、機能を追加または削除しないでください。パッケージ(有料)テーマには特別な機能を含めることができますが、これはほとんどの場合、そのようなテーマに付随するモジュールで行われます。テーマは交換可能である必要があるため、任意のMagento 2 Webショップに適用できますが、Magento 2 Webショップはテーマを簡単に切り替えることができます(たとえば、複数のストア設定で複数のテーマを持つことができます)。


したがって、「テンプレート/ブロック/レイアウトでサイトのグローバルテンプレートの多くをオーバーライドする」場所を尋ねた場合、答えはテーマになります。

繰り返しになります、好きなことは何でもできますが、他の誰かが開発に参加したり引き継いだりする場合は、サイトのグローバルテーマの変更がモジュールではなくテーマにあると期待します。期待どおりに行われないと、開発が遅くなり、メンテナンスが困難になります。


1
正確に、私は正しいことをしたいのです。役立つ回答に感謝します。これらの変更のいくつかをテーマに移行し始めます。
Daniel Thompson

3

この答えは、これがMagentoの標準ではあり得ないと思ったものです

レイアウトとテンプレートにテーマを使用する場合とモジュールを使用する場合

テーマ

変更が必要な場合は、変更が1つの場所である必要があり、変更が異なるストアまたはWebサイトで異なるように見え、複数のテーマがある場合は、テーマを直接変更できます。

モジュール

要件のモジュールまたは拡張を開発していて、変更をグローバルに行う必要があると思われる場合は、モジュール自体にレイアウトとテンプレートを配置します

私が提案していることは、常にモジュールに1つのマスターコピーを作成し、必要に応じて変更したい場合は、テーマをコピーしてテンプレートに変更を加えます。

このようにして、テーマが変更された場合や、モジュールファイルもそこにあった場合などの問題を解決できます

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.