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>

क्या किसी को पता है कि इन फाइलों का उपयोग Magento 2 में किस लिए किया जाता है? वे पुराने Magento के 1 शीर्ष स्तर के <resources/>नोड प्रतीत होते हैं । हालांकि, बाद से Magento अब का उपयोग करता है सेटअप संसाधन मॉडल / माइग्रेशन (में बजाय Magento 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)। किसी भी विचार दे हो सकता है हो सकता है
अमित बेरा

1
@AmitBera बताता है कि संसाधनों में डेटा कैसे दिखाई देता है। xml दिखना चाहिए, यह हमें नहीं बताता है कि सिस्टम इन फ़ाइलों के लिए क्या उपयोग करता है।
एलन स्टॉर्म

क्षमा करें, मैं किसी भी स्पष्ट रूप से पता इस है.अगर के बारे में मैं किसी भी बात समझ तो मैं पोस्ट करेंगे नहीं था
अमित बेरा

जवाबों:


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 / आंतरिक / Magento / फ्रेमवर्क / ऐप्स / ResourceConnection / config.php

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

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

और सेटअप / src / Magento / सेटअप / मॉड्यूल / सेटअप / 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 एंटरप्राइज़ सुविधा है), लेकिन एकमात्र उपयोग जो मैंने अभी तक किया है, वह भी केवल विस्तार का उपयोग करता है से core

मेरा कूबड़ यह है कि किसी को अतिरिक्त db कनेक्शन बनाने की आवश्यकता होगी app/etc/env.phpजिसमें तब आप उन मानों का उपयोग डिफ़ॉल्ट resource.xmlफ़ाइलों (यानी सिर्फ 1 डिफ़ॉल्ट कनेक्शन) में भेजे गए को ओवरराइड करने के लिए कर सकते हैं ।


2
बस संक्षेप में: 'resource.xml' विस्तार डेवलपर को संसाधन विरासत की जानकारी और जानकारी को जोड़ने वाले कनेक्शन को निर्दिष्ट करने की अनुमति देता है।
एंटोन क्रिल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.