Perché registration.php aggiunto in magento-2.0.0-RC?


15

Recentemente è magento-2.0.0-RCstato lanciato e sono stati aggiunti registration.phpin ogni cartella principale del modulo? Quindi voglio solo sapere c'è qualche motivo per questo?

Qualcuno può far luce su questo?

Risposte:


12

registration.phpè una specie di punto di ingresso del tuo modulo. È l'equivalente di app/etc/modules/[Namespace]_[Module].xmlMagento 1.
Ma ora fa parte del modulo stesso.
ti permette di creare moduli nella app/codecartella e anche nella vendorcartella.
Indipendentemente da dove lo aggiungi, questo file verrà raccolto da Magento e il tuo modulo verrà preso in considerazione.


Dove lo aggiungi significa che posso posizionare questo file ovunque come blocco, directory modello o controller o qualsiasi altra directory? @Marius
Keyur Shah,

E c'è qualche motivo per questo perché config.php è già lì @Marius
Keyur Shah,

2
in config.phpsolo vengono visualizzati i nomi dei moduli e il loro stato (abilitato / disabilitato). Non esiste un percorso per il modulo. Come ho detto nella risposta, registration.phpti permette di avere dei moduli all'esternoapp/code
Marius

3
Vedi questo per maggiori dettagli: maxyek.wordpress.com/2015/03/27/…
Marius

@Marius: Quindi il modulo non dovrebbe funzionare senza registration.php giusto?
Sukeshini,

1

ho notato che due cose sono state cambiate da Magento ver. 1.0.0-beta (ottobre) a Magento ver. 2.0.0-rc2
1. aggiunto un nuovo file nella cartella principale del modulo chiamato registration.php es: -app \ code \ Sugarcode \ Test \ registration.php

<?php
/**
 * Copyright © 2015 Magento. All rights reserved.
 * See COPYING.txt for license details.
 */

\Magento\Framework\Component\ComponentRegistrar::register(
    \Magento\Framework\Component\ComponentRegistrar::MODULE,
    'Sugarcode_Test',
    __DIR__
);

2. event.xml è stato modificato in precedenza, menzioniamo il nome del metodo nel tag observer in event.xml ora il metodo è stato rimosso juts devi menzionare solo l'istanza che è

<?xml version="1.0"?>    
    <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../lib/internal/Magento/Framework/Event/etc/events.xsd">
        <event name="sales_order_grid_collection_load_before">
            <observer name="sales_order_grid_test" instance="Sugarcode\Test\Observer\Addtest" />
        </event>

    </config>

e nella cartella / ModuleName / Observer è necessario creare un file con la funzione

public function execute()

questo è

<?php

namespace Sugarcode\Test\Observer;

class Addtest
{


    public function execute(\Magento\Framework\Event\Observer $observer)
    {
        $obj=$observer->getEvent()->getOrderGridCollection();
        $obj->getSelect()->joinLeft(
            ['testt' => 'testtable'],
            "(main_table.entity_id = testt.id)",
            [
                'testt.title as title'
            ]
        );
        //$this->printlogquery(true); 
        //return $obj;
    }
}
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.