마 젠토 2 :`resources.xml` 파일은 무엇입니까?


12

Magento 2에서 모듈이 가질 수있는 XML 구성 파일 중 하나는 resources.xml파일입니다. 예를 들어, 판매 모듈에는

#File: vendor/magento/module-sales/etc/resources.xml
<?xml version="1.0" encoding="UTF-8"?>
<!--
/**
 * Copyright © 2015 Magento. All rights reserved.
 * See COPYING.txt for license details.
 */
-->
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:App/etc/resources.xsd">
    <resource name="sales_setup" extends="core_setup" />
    <resource name="sales" extends="core" />
</config>

Magento 2에서이 파일들이 무엇을 사용하는지 알고 있습니까? 이전 Magento 1 최상위 <resources/>노드 인 것 같습니다. (에서 대신 젠토이 사용하는 클래스 그러나 젠토 더 이상 사용 설정 자원 모델 / 마이그레이션 이후 Setup/InstallSchema.php, Setup/InstallData.php, Setup/UpgradeSchema.php, Setup/UpgradeData.php/ 스크립트 마이그레이션과 같은 설치에 대한)의 100 %는 분명한 sales_setup자원입니다.

비 설정 리소스의 경우 다른 자격 증명 / 연결 문자열 정보를 사용하여 데이터베이스 연결 클래스를 추가하는 또 다른 방법입니까? 또는 다른 것?


앨런,이 파일을 볼 수 있습니다 vendor\magento\framework\App\etc\resources.xsd"(4,41). 어떤 아이디어를 줄 수 있습니다
Amit Bera

1
@AmitBera resources.xml의 데이터가 어떻게 표시되어야하는지 알려주지 만, 시스템이이 파일들을 어떻게 사용하는지는 알려주지 않습니다.
Alan Storm

죄송합니다, 나는 그때 내가 게시 할 예정 어떤 점을 얻을이 .If에 대한 명확한 아이디어가 없었어요
아 미트 Bera

답변:


10

리소스가 실제 데이터베이스 연결과 관련이 있다고 생각합니다. 과거의 M1은 다음과 같습니다.

   <resources>
        <backup_setup>
            <setup>
                <module>Mage_Backup</module>
            </setup>
            <connection>
                <use>core_setup</use>
            </connection>
        </backup_setup>
        <backup_write>
            <connection>
                <use>core_write</use>
            </connection>
        </backup_write>
        <backup_read>
            <connection>
                <use>core_read</use>
            </connection>
        </backup_read>
    </resources>

리소스 파일이 연결의 후속 버전이라고 말하고 싶습니다.

우리 가이 코드를 가지고 있기 때문에 _setup 노드가 다른 줄보다 많은 가치를 제공하는지 확실하지 않습니다.

lib / internal / Magento / Framework / App / ResourceConnection / Config.php

public function getConnectionName($resourceName)
{
    $connectionName = \Magento\Framework\App\ResourceConnection::DEFAULT_CONNECTION;

    $resourceName = preg_replace("/_setup$/", '', $resourceName);

또한 setup / src / Magento / Setup / Module / Setup / ResourceConfig.php에서도

class ResourceConfig implements \Magento\Framework\App\ResourceConnection\ConfigInterface
{
    /**
     * {@inheritdoc}
     */
    public function getConnectionName($resourceName)
    {
        return \Magento\Framework\App\ResourceConnection::DEFAULT_CONNECTION;
    }
}

resources.xml파일 사용에 대해 더 많은 정보를 제공하는지 확인하기 위해 일부 엔터프라이즈 모듈을 간략히 살펴 보았습니다 (여러 db는 M2 Enterprise 기능 임). 에서 core.

필자의 직감은 추가 DB 연결을 생성해야하며 app/etc/env.php, 그런 다음 해당 값을 사용하여 기본 resource.xml파일에 제공된 값을 재정의 할 수 있습니다 (즉, 1 개의 기본 연결).


2
요약하자면, 'resources.xml'은 확장 개발자가 자원 상속 정보 및 연결 링크 정보를 지정할 수있게합니다.
Anton Kril
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.