모듈 구성 파일 개요

이전 버전의 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-: 언어 패키지.
INFO
현재 테마는 <magento_root>/app/design/frontend 또는 <magento_root>/app/design/adminhtml 아래에 있습니다.
  • <component-name>: composer.json에 정의된 구성 요소의 이름입니다.

구성 파일 병합

구성 파일의 노드는 식별자로 선언된 $idAttributes 배열에 정의된 특수 특성이 있는 정규화된 XPath를 기반으로 병합됩니다. 이 식별자는 동일한 상위 노드 아래에 중첩된 모든 노드에 대해 고유해야 합니다.

Commerce 애플리케이션 병합 알고리즘:

  • 노드 식별자가 같은 경우(또는 정의된 식별자가 없는 경우) 노드의 모든 기본 콘텐츠(속성, 하위 노드 및 스칼라 콘텐츠)가 무시됩니다.
  • 노드 식별자가 같지 않으면 노드는 상위 노드의 새 하위 노드입니다.
  • 원본 문서에 동일한 식별자를 가진 노드가 여러 개 있는 경우 식별자를 구별할 수 없으므로 오류가 트리거됩니다.

구성 파일이 병합되면 원본 파일의 모든 노드가 결과 문서에 포함됩니다.

INFO
\Magento\Framework\Config\Reader\Filesystem 클래스를 사용하여 구성 파일 로더구성 병합 프로세스의 논리를 디버깅하고 이해할 수 있습니다.

구성 유형, 객체 및 인터페이스

다음 단원에서는 구성 유형, 해당 구성 객체 및 객체를 사용하는 데 사용할 수 있는 인터페이스에 대한 정보를 제공합니다.

구성 유형 및 개체

다음 표는 각 구성 유형과 이 구성 유형이 관련된 Commerce 구성 객체를 보여 줍니다.

구성 파일
설명
단계
구성 개체
address_formats.xml
주소 형식 선언
기본, 글로벌
\Magento\Customer\Model\Address\Config
acl.xml
액세스 제어 목록
글로벌
\Magento\Framework\Acl\AclResource\Provider
analytics.xml
고급 보고
기본, 글로벌
\Magento\Analytics\Model\Config\Reader
cache.xml
캐시 유형 선언
기본, 글로벌
\Magento\Framework\Cache\Config\Data
catalog_attributes.xml
카탈로그 속성 구성
글로벌
\Magento\Catalog\Model\Attribute\Config\Data
config.phpenv.php
배포 구성
이러한 파일은 내부 구성 프로세서에서 읽기/쓰기 가능합니다.
개체가 없어 사용자 지정할 수 없습니다.
config.xml
시스템 구성
기본, 글로벌
\Magento\Framework\App\Config
communication.xml
메시지 큐 시스템의 측면을 정의합니다
글로벌
\Magento\WebapiAsync\Code\Generator\Config\RemoteServiceReader\Communication
crontab.xml
크론 그룹 구성
글로벌
\Magento\Cron\Model\Config\Data
cron_groups.xml
크론 그룹 옵션을 지정합니다
글로벌
\Magento\Cron\Model\Groups\Config\Data
db_schema.xml
선언 스키마
글로벌
Magento\Framework\Setup\Declaration\Schema
di.xml
종속성 삽입 구성
기본, 글로벌, 영역
\Magento\Framework\ObjectManager\Config
eav_attributes.xml
EAV 속성 구성 제공
글로벌
\Magento\Eav\Model\Entity\Attribute\Config
email_templates.xml
이메일 템플릿 구성
글로벌
\Magento\Email\Model\Template\Config\Data
esconfig.xml
검색 엔진 로케일 중지 단어 구성
글로벌
\Magento\Elasticsearch\Model\Adapter\Index\Config\EsConfig
events.xml
이벤트/관찰자 구성
전역, 영역
\Magento\Framework\Event
export.xml
엔티티 구성 내보내기
글로벌
\Magento\ImportExport\Model\Export\Config
extension_attributes.xml
확장 특성
글로벌
\Magento\Framework\Api\ExtensionAttribute\Config
fieldset.xml
필드 세트 정의
글로벌
\Magento\Framework\DataObject\Copy\Config\Reader
indexer.xml
인덱서 선언
글로벌
\Magento\Framework\Indexer\Config\Reader
import.xml
가져오기 엔티티 선언
글로벌
\Magento\ImportExport\Model\Import\Config
menu.xml
관리자의 메뉴 항목을 정의합니다.
adminhtml
\Magento\Backend\Model\Menu\Config\Reader
module.xml
모듈 구성 데이터 및 소프트 종속성 정의
기본, 글로벌
\Magento\Framework\Module\ModuleList\Loader
mview.xml
MView 구성
기본, 글로벌
\Magento\Framework\Mview\Config\Data
payment.xml
결제 모듈 구성
기본, 글로벌
\Magento\Payment\Model\Config
persistent.xml
Magento_영구 구성 파일
글로벌
\Magento\Persistent\Helper\Data
pdf.xml
PDF 설정
글로벌
\Magento\Sales\Model\Order\Pdf\Config\Reader
product_options.xml
제품 옵션 구성 제공
글로벌
\Magento\Catalog\Model\ProductOptions\Config
product_types.xml
제품 유형 정의
글로벌
\Magento\Catalog\Model\ProductTypes\Config
queue_consumer.xml
기존 큐와 해당 소비자 간의 관계를 정의합니다
글로벌
\Magento\Framework\MessageQueue\Consumer\Config\Xml\Reader
queue_publisher.xml
주제가 게시되는 교환을 정의합니다.
글로벌
\Magento\WebapiAsync\Code\Generator\Config\RemoteServiceReader\Publisher
queue_topology.xml
메시지 라우팅 규칙을 정의하고 큐 및 교환을 선언합니다
글로벌
\Magento\Framework\MessageQueue\Topology\Config\Xml\Reader
reports.xml
고급 보고서
글로벌
\Magento\Analytics\ReportXml\Config
resources.xml
모듈 리소스 정의
글로벌
\Magento\Framework\App\ResourceConnection\Config\Reader
routes.xml
경로 구성
영역
Magento\Framework\App\Route\Config
sales.xml
판매 총계 구성 정의
글로벌
\Magento\Sales\Model\Config\Data
search_engine.xml
검색 엔진 구성 제공
글로벌
Magento\Search\Model\SearchEngine\Config
search_request.xml
카탈로그 검색 구성 정의
글로벌
\Magento\Framework\Search\Request\Config
sections.xml
비공개 콘텐츠 블록에 대한 캐시 무효화를 트리거하는 작업을 정의합니다.
프론트엔드
SectionInvalidationConfigReader
system.xml
시스템 구성 옵션 정의 페이지
adminhtml
\Magento\Framework\App\Config
validation.xml
모듈 유효성 검사 구성 파일
글로벌
\Magento\Framework\Validator\Factory
view.xml
Vendor_Module 보기 구성 값을 정의합니다.
글로벌
\Magento\Framework\View\Config
webapi.xml
웹 API를 구성합니다
글로벌
\Magento\Webapi\Model\Config
webapi_async.xml
REST 사용자 지정 경로 정의
글로벌
\Magento\WebapiAsync\Model\ServiceConfig
widget.xml
위젯 정의
글로벌
\Magento\Widget\Model\Config\Reader
zip_codes.xml
각 국가의 우편번호 형식을 정의합니다.
글로벌
\Magento\Directory\Model\Country\Postcode\Config\Data

구성 인터페이스

Magento\Framework\Config의 인터페이스를 사용하여 구성 파일과 상호 작용할 수 있습니다.

구성 형식을 만드는경우 이러한 인터페이스를 사용할 수 있습니다.

Magento\Framework\Config은(는) 다음 인터페이스를 제공합니다.

즉, 파일 시스템, 데이터베이스, 기타 저장소는 병합 규칙에 따라 구성 파일을 병합하고 유효성 검사 스키마와 함께 구성 파일의 유효성을 검사합니다.

recommendation-more-help
386822bd-e32c-40a8-81c2-ed90ad1e198c