Magento 2: `resources.xml` Dosyaları Ne İçin Kullanılır?


12

Magento 2'de, bir modülün sahip olabileceği XML yapılandırma dosyalarından biri resources.xmldosyadır. Örneğin, satış modülünde

#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'de bu dosyaların ne için kullanıldığını bilen var mı? Eski Magento 1 üst seviye <resources/>düğümü gibi görünüyorlar. (Yerine Magento 2 kullanımları sınıflar Ancak Magento artık kullanımları Kur Kaynak Modeli / Taşıma beri Setup/InstallSchema.php, Setup/InstallData.php, Setup/UpgradeSchema.php, Setup/UpgradeData.php/ komut göç benzeri yüklemek için), bu% 100 ne olduğu belli sales_setupkaynak içindir.

Kurulum dışı kaynak için bu, farklı kimlik bilgileri / bağlantı dizesi bilgileri içeren bir veritabanı bağlantı sınıfı eklemenin başka bir yolu mu? Veya başka bir şey?


Lütfen bu dosyaya bakabilirsiniz vendor\magento\framework\App\etc\resources.xsd"(4,41). herhangi bir fikir verebilir
Amit Bera

1
@AmitBera resources.xml dosyasındaki verilerin nasıl görünmesi gerektiğini söyleyen sistem bize bu dosyaları ne için kullandığını söylemez.
Alan Storm

Üzgünüm, bu konuda net bir fikrim yoktu. Herhangi bir puan alırsam o zaman göndereceğim
Amit Bera

Yanıtlar:


10

Kaynakların gerçek veritabanı bağlantısıyla ilgili olduğunu düşünüyorum. Geçmişte M1 böyle bir şeye sahipti:

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

bu yüzden kaynaklar dosyasının bağlantının ardılı olduğunu söyleyebilirim.

_Setup düğümünün, bu kodu kullandığımız için diğer satırın üzerinde çok fazla değer sağladığından emin değilim

lib / iç / Magento / Çerçeve / Uygulama / ResourceConnection / Config.php

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

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

ve ayrıca setup / src / Magento / Setup / Module / Setup / ResourceConfig.php dosyasında

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

Ben resources.xml(birden fazla dbs görünüşte bir M2 Enterprise özelliği olduğu gibi) dosyanın kullanımı daha fazla ışık tutuyor olup olmadığını görmek için bazı kurumsal modüller arasında hızlı bir göz vardı ama şimdiye kadar karşılaştığım tek kullanım da sadece kullanır kullanır den core.

Benim önsezi biri daha app/etc/env.phpsonra varsayılan resource.xmldosyaları (yani sadece 1 varsayılan bağlantı) sevk olanlar geçersiz kılmak için bu değerleri kullanmak için izin ek db bağlantıları oluşturmak gerekir olmasıdır .


2
Özetlemek gerekirse: 'resources.xml', uzantı geliştiricisinin kaynak devralma bilgilerini ve bağlantı bağlantı bilgilerini belirtmesine olanak tanır.
Anton Kril
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.