Magento 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>

ไม่มีใครรู้ว่าไฟล์เหล่านี้จะใช้สำหรับในวีโอไอพี 2? พวกมันดูเหมือนจะเป็น<resources/>โหนดระดับบนสุดของ Magento 1 อย่างไรก็ตามตั้งแต่วีโอไอพีไม่ใช้การตั้งค่าทรัพยากรรุ่น / Migrations (แทนวีโอไอพี 2 ใช้ในชั้นเรียน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

ขออภัยฉันไม่ได้มีความคิดที่ชัดเจนเกี่ยวกับเรื่องนี้ถ้าฉันได้รับจุดใด ๆ แล้วฉันจะโพสต์
Amit 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 / ภายใน / วีโอไอพี / กรอบ / แอป / 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ไฟล์มีความสว่างมากขึ้นหรือไม่ (เนื่องจาก dbs หลาย ๆ ตัวนั้นเป็นฟีเจอร์ M2 Enterprise) แต่การใช้งานเพียงอย่างเดียวที่ฉันเคยเจอมา coreจาก

ลางสังหรณ์ของฉันคือจะต้องสร้างการเชื่อมต่อฐานข้อมูลเพิ่มเติมapp/etc/env.phpซึ่งทำให้คุณสามารถใช้ค่าเหล่านั้นเพื่อแทนที่สิ่งที่ส่งมาในresource.xmlไฟล์เริ่มต้น(เช่นการเชื่อมต่อเริ่มต้นเพียง 1)


2
เพื่อสรุป: 'resources.xml' อนุญาตให้นักพัฒนาส่วนขยายระบุข้อมูลการสืบทอดทรัพยากรและข้อมูลการเชื่อมต่อการเชื่อมต่อ
Anton Kril
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.