모듈 구성 파일 개요
이전 버전의 Commerce에서 사용된 config.xml
구성 파일의 권한은 이제 여러 모듈 디렉터리에 있는 여러 파일로 나누어집니다. Commerce의 여러 구성 파일은 모듈이 특정 구성 유형을 요청하는 경우에만 요청 시 로드됩니다.
이러한 파일(구성 유형)을 사용하여 모듈 동작의 특정 측면을 사용자 지정할 수 있습니다.
여러 모듈이 동일한 구성 유형에 영향을 주는 구성 파일(예: 이벤트)을 선언할 수 있으며, 이러한 여러 구성 파일은 병합됩니다.
다음은 이 주제에서 사용되는 일반적인 용어입니다.
-
구성 개체—구성 형식을 정의하고 유효성을 검사하는 Commerce 라이브러리 또는 클래스입니다. 예를 들어
config.xml
에 대한 구성 개체는 Magento\Framework\App\Config입니다. -
구성 단계—단계가 기본, 전역 및 영역 으로 정의됩니다. 각 단계는 구성 유형이 로드되고 이름이 같은 구성 유형과 병합되는 시기를 결정합니다. 예를 들어
module.xml
개의 파일이 다른module.xml
개의 파일과 병합됩니다. -
구성 범위 - 구성 단계와 보완되는 범위에서는 구성 유형 모델을 정의합니다. 예를 들어
adminhtml
은(는) 스테이지에서 다른 모듈의adminhtml
구성과 함께 로드되는 영역 범위입니다. 자세한 내용은 모듈 및 영역을 참조하세요.
구성 로드 및 병합
이 섹션에서는 구성 파일을 로드하고 병합하는 방법에 대해 설명합니다.
Commerce에서 구성 파일을 로드하는 방법
Commerce은 구성 파일을 다음 순서로 로드합니다(모든 경로는 Commerce 설치 디렉터리를 기준으로 함).
- 기본 구성(app/etc/di.xml). 이 파일은 Commerce를 부트스트랩하는 데 사용됩니다.
- 모듈(
<your component base dir>/<vendorname>/<component-type>-<component-name>/etc/*.xml
)의 글로벌 구성. 모든 모듈에서 특정 구성 파일을 수집하여 병합합니다. - 모듈(
<your component base dir>/<vendorname>/<component-type>-<component-name>/etc/<area>/*.xml
)의 영역별 구성. 모든 모듈에서 구성 파일을 수집하여 전역 구성에 병합합니다. 일부 영역별 구성은 전역 구성을 재정의하거나 확장할 수 있습니다.
위치
-
<your component base dir>
은(는) 구성 요소가 있는 기본 디렉터리입니다. 일반적인 값은 Commerce 설치 디렉터리를 기준으로 하는app/code
또는vendor
입니다. -
<vendorname>
은(는) 구성 요소의 공급업체 이름입니다. 예를 들어, Commerce의 공급업체 이름은magento
입니다. -
<component-type>
은(는) 다음 중 하나입니다.module-
: 확장 또는 모듈입니다.theme-
: 테마.language-
: 언어 패키지.
<magento_root>/app/design/frontend
또는 <magento_root>/app/design/adminhtml
아래에 있습니다.<component-name>
: composer.json에 정의된 구성 요소의 이름입니다.
구성 파일 병합
구성 파일의 노드는 식별자로 선언된 $idAttributes
배열에 정의된 특수 특성이 있는 정규화된 XPath를 기반으로 병합됩니다. 이 식별자는 동일한 부모 노드 아래에 중첩된 모든 노드에 대해 고유해야 합니다.
상거래 애플리케이션 병합 알고리즘:
- 노드 식별자가 같으면(또는 정의된 식별자가 없는 경우) 노드의 모든 기본 컨텐츠(특성, 자식 노드 및 스칼라 컨텐츠)가 재정의됩니다.
- 노드 식별자가 같지 않으면 노드는 상위 노드의 새 하위 노드입니다.
- 원본 문서에 동일한 식별자를 가진 노드가 여러 개 있는 경우 식별자를 구별할 수 없으므로 오류가 트리거됩니다.
구성 파일이 병합되면 원본 파일의 모든 노드가 결과 문서에 포함됩니다.
구성 형식, 개체 및 인터페이스
다음 섹션에서는 구성 유형, 해당 구성 개체 및 개체 작업에 사용할 수 있는 인터페이스에 대한 정보를 제공합니다.
구성 형식 및 개체
다음 표에는 각 구성 유형 및 해당 구성 유형과 관련된 Commerce 구성 개체가 나와 있습니다.
analytics.xml
communication.xml
queue_consumer.xml
queue_publisher.xml
queue_topology.xml
구성 인터페이스
Magento\Framework\Config의 인터페이스를 사용하여 구성 파일과 상호 작용할 수 있습니다.
구성 형식을 만드는경우 이러한 인터페이스를 사용할 수 있습니다.
Magento\Framework\Config
은(는) 다음 인터페이스를 제공합니다.
- Framework\Config\ConverterInterface(XML을 구성의 메모리 내 배열 표시로 변환).
- 지정된 범위에서 구성 데이터를 검색하는 Framework\Config\DataInterface.
- Magento\Framework\Config\ReaderInterface에서 읽을 파일의 위치를 식별하는 Framework\Config\FileResolverInterface.
- 저장소에서 구성 데이터를 읽고 읽을 저장소를 선택하는 Framework\Config\ReaderInterface.
즉, 파일 시스템, 데이터베이스, 기타 저장소는 병합 규칙에 따라 구성 파일을 병합하고 유효성 검사 스키마와 함께 구성 파일의 유효성을 검사합니다.
- XSD 스키마를 찾는 Framework\Config\SchemaLocatorInterface.
- 범위 목록을 반환하는 Framework\Config\ScopeListInterface.
- 유효성 검사 상태를 검색하는 Framework\Config\ValidationStateInterface.