모듈이있을 때 테마를 사용하는 이유는 무엇입니까?


9

내 사용자 정의 모듈 안에 파일을 추가했습니다.

Vendor/Theme/view/layout/default.xml

사용자 정의 모듈의 템플릿 / 블록 / 레이아웃으로 많은 사이트의 글로벌 템플릿을 재정의하는 데 사용하고 있습니다. 또한 view/web해당 모듈 의 디렉토리에 존재하는 자체 글로벌 스타일을 첨부하고 있습니다 .

대신 이것에 대한 테마를 사용해야합니까? 한 디자인 패턴에 대해 다른 디자인 패턴에 대한 좋은 주장이 있습니까? 예 : app/design이상 사용 app/code?

답변:


13

당신 당신이 멋진 일을 할 수 있지만, 그것이 옳은 일 이라면 여기서 질문입니다.

모듈

모듈은 웹숍의 기능을 추가 또는 변경해야하며 다른 Magento 2 웹숍으로 전송 될 수 있습니다. 모듈은 자체 레이아웃, 템플릿 및 스타일을 가질 수 있으며 모듈의 기능에 필요한 경우 일반 레이아웃, 템플릿 및 스타일을 변경할 수 있습니다. 모듈은 대부분 단일 기능에 중점을두기 때문에 (상대적으로) 작기 때문에 Magento 2 웹숍에는 많은 기능이 있습니다.

모듈은 쉽게 활성화 및 비활성화 할 수 있으며 추가 또는 변경되는 특정 기능이 나타나거나 사라지게합니다. 전체 사이트가 변경되지 않아야합니다.

테마

테마는 글로벌 웹숍의 레이아웃, 템플릿 및 스타일을 변경하며 기능을 추가하거나 제거하지 않아야합니다. 패키지 형 (유료) 테마에는 특수 기능이 포함될 수 있지만 이러한 테마와 함께 제공되는 모듈에서 가장 자주 수행됩니다. 테마는 서로 바꿔야하므로 모든 Magento 2 웹숍에 적용 할 수 있지만 Magento 2 웹숍은 테마를 쉽게 전환 할 수 있습니다 (예 : 다중 저장소 설정에서 여러 항목을 가질 수 있음).


따라서 "템플릿 / 블록 / 레이아웃을 사용하여 많은 사이트의 전역 템플릿을 재정의 할 위치 " 를 묻는다면 그 대답은 주제가 될 것 입니다 .

다시 말하지만, 당신 멋진 일을 할 있지만, 다른 누군가가 참여하거나 개발을 인수한다면, 사이트 전역 테마 변경이 모듈이 아닌 테마에있을 것으로 기대할 것입니다. 예상대로 작업을 수행하지 않으면 개발 속도가 느려지고 유지 관리가 어려워집니다.


1
정확히, 나는 올바른 일을하고 싶습니다. 유용한 답변에 감사 드리며, 이러한 변경 사항 중 일부를 테마로 마이그레이션하기 시작하겠습니다.
Daniel Thompson

3

이 답변은 이것이 Magento 표준이 될 수 없다고 생각한 것입니다.

레이아웃 및 템플릿에 테마를 사용하는시기 및 모듈을 사용하는시기

테마

변경 사항이 한 곳이어야 할 때 변경 사항이 다른 상점 또는 웹 사이트에서 다르게 표시되어야하고 여러 테마가있는 경우 테마를 직접 변경할 수 있습니다.

구성 단위

요구 사항에 대한 모듈 또는 확장을 개발할 때 변경 사항이 전역 적이어야한다고 생각하면 레이아웃 및 템플릿을 모듈 자체에 넣습니다.

내가 제안하는 것은 항상 모듈에서 하나의 마스터 사본을 만들고 요구 사항에 따라 변경하려면 테마를 복사하고 템플릿을 변경하십시오.

이렇게하면 테마가 변경 된 다음 모듈 파일도있는 경우와 같은 문제를 해결할 수 있습니다

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.