Magento 2: Untuk apa file `resources.xml`?


12

Di Magento 2, salah satu file konfigurasi XML yang mungkin dimiliki modul adalah resources.xmlfile. Misalnya, modul penjualan memiliki satu

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

Adakah yang tahu untuk apa file-file ini digunakan di Magento 2? Mereka tampaknya menjadi <resources/>simpul tingkat atas Magento 1 tua . Namun, karena Magento penggunaan tidak lagi Penataan Sumber Daya Model / Migrasi (bukan Magento 2 menggunakan kelas dalam Setup/InstallSchema.php, Setup/InstallData.php, Setup/UpgradeSchema.php, Setup/UpgradeData.phpuntuk install / migrasi seperti script), yang tidak 100% jelas apa yang sales_setupsumber daya adalah untuk.

Untuk sumber daya non-setup, apakah ini hanya cara lain untuk menambahkan kelas koneksi database dengan informasi string koneksi / kredensial berbeda? Atau sesuatu yang lain?


alan, Bisa tolong lihat file ini vendor\magento\framework\App\etc\resources.xsd"(4,41). mungkin bisa memberikan ide
Amit Bera

1
@AmitBera Itu memberi tahu bagaimana data dalam resources.xml akan muncul, tidak memberi tahu kami untuk apa sistem menggunakan file-file ini.
Alan Storm

Maaf, saya tidak punya ide yang jelas tentang hal ini. Jika saya mendapatkan poin maka saya akan memposting
Amit Bera

Jawaban:


10

Saya pikir sumber daya berkaitan dengan koneksi database yang sebenarnya. M1 di masa lalu memiliki sesuatu seperti ini:

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

jadi saya akan mengatakan file sumber daya adalah penerus dari apa koneksi itu.

Tidak yakin bahwa simpul _setup memberikan banyak nilai di atas baris lain karena kita memiliki kode ini

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

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

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

dan juga di 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;
    }
}

Saya telah melihat sekilas beberapa modul perusahaan untuk melihat apakah hal itu memberi lebih banyak perhatian pada penggunaan resources.xmlfile (karena beberapa dbs tampaknya merupakan fitur M2 Enterprise) tetapi satu-satunya penggunaan yang saya temui sejauh ini juga hanya menggunakan extends dari core.

Firasat saya adalah bahwa seseorang perlu membuat koneksi db tambahan app/etc/env.phpyang kemudian memungkinkan Anda untuk menggunakan nilai-nilai itu untuk menimpa yang dikirimkan dalam resource.xmlfile default (yaitu hanya 1 koneksi default).


2
Singkatnya: 'resources.xml' memungkinkan pengembang ekstensi untuk menentukan informasi warisan sumber daya dan informasi penghubung koneksi.
Anton Kril
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.